From e27ae35e12d4d02e0fe275081d4fe533a4d41311 Mon Sep 17 00:00:00 2001
From: dklimpel <5740567+dklimpel@users.noreply.github.com>
Date: Sat, 23 May 2020 19:04:06 +0200
Subject: [PATCH] Add button to purge rooms to room list
Add button (BulkDeleteButton) to delete rooms with no local users:
- purge rooms `POST /_synapse/admin/v1/purge_room`
(https://github.com/matrix-org/synapse/blob/master/docs/admin_api/purge_room.md)
---
src/components/rooms.js | 30 +++++++++++++++++++++++++++---
src/i18n/de.js | 7 +++++++
src/i18n/en.js | 7 +++++++
src/synapse/dataProvider.js | 5 +++++
4 files changed, 46 insertions(+), 3 deletions(-)
diff --git a/src/components/rooms.js b/src/components/rooms.js
index 8cac414..cb289ef 100644
--- a/src/components/rooms.js
+++ b/src/components/rooms.js
@@ -1,12 +1,36 @@
-import React from "react";
-import { Datagrid, List, TextField, Pagination } from "react-admin";
+import React, { Fragment } from "react";
+import {
+ Datagrid,
+ List,
+ TextField,
+ Pagination,
+ BulkDeleteButton,
+ useTranslate,
+} from "react-admin";
const RoomPagination = props => (
);
+const RoomBulkActionButtons = props => {
+ const translate = useTranslate();
+ return (
+
+
+
+ );
+};
+
export const RoomList = props => (
-
}>
+
}
+ bulkActionButtons={}
+ >
diff --git a/src/i18n/de.js b/src/i18n/de.js
index a467c1a..7d44550 100644
--- a/src/i18n/de.js
+++ b/src/i18n/de.js
@@ -54,6 +54,13 @@ export default {
canonical_alias: "Alias",
joined_members: "Mitglieder",
},
+ helper: {
+ purge:
+ "Alle lokalen Benutzer müssen den Raum verlassen haben, bevor er entfernt werden kann.",
+ },
+ action: {
+ purge: "Säubere Raum",
+ },
},
connections: {
name: "Verbindungen",
diff --git a/src/i18n/en.js b/src/i18n/en.js
index a7a6141..ffe2f78 100644
--- a/src/i18n/en.js
+++ b/src/i18n/en.js
@@ -54,6 +54,13 @@ export default {
canonical_alias: "Alias",
joined_members: "Members",
},
+ helper: {
+ purge:
+ "All local users must have left the room before it can be removed.",
+ },
+ action: {
+ purge: "Purge room",
+ },
},
connections: {
name: "Connections",
diff --git a/src/synapse/dataProvider.js b/src/synapse/dataProvider.js
index 6d5486c..e4f4fbb 100644
--- a/src/synapse/dataProvider.js
+++ b/src/synapse/dataProvider.js
@@ -53,6 +53,11 @@ const resourceMap = {
total: json => {
return json.total_rooms;
},
+ delete: id => ({
+ endpoint: "/_synapse/admin/v1/purge_room",
+ body: { room_id: id },
+ method: "POST",
+ }),
},
connections: {
path: "/_synapse/admin/v1/whois",