diff --git a/src/App.js b/src/App.js index e5f19e1..5c8e132 100644 --- a/src/App.js +++ b/src/App.js @@ -53,6 +53,7 @@ const App = () => ( + ); diff --git a/src/components/rooms.js b/src/components/rooms.js index 041f0a6..efef5cb 100644 --- a/src/components/rooms.js +++ b/src/components/rooms.js @@ -4,6 +4,7 @@ import { BooleanField, BulkDeleteWithConfirmButton, Datagrid, + DeleteButton, Filter, List, Pagination, @@ -15,6 +16,7 @@ import { Tab, TabbedShowLayout, TextField, + TopToolbar, useTranslate, } from "react-admin"; import get from "lodash/get"; @@ -70,10 +72,26 @@ const RoomTitle = ({ record }) => { ); }; +const RoomShowActions = ({ basePath, data, resource }) => { + const translate = useTranslate(); + return ( + + + + ); +}; + export const RoomShow = props => { const translate = useTranslate(); return ( - }> + } title={}> }> diff --git a/src/components/users.js b/src/components/users.js index 6d9a37c..e93e409 100644 --- a/src/components/users.js +++ b/src/components/users.js @@ -6,6 +6,7 @@ import DevicesIcon from "@material-ui/icons/Devices"; import GetAppIcon from "@material-ui/icons/GetApp"; import SettingsInputComponentIcon from "@material-ui/icons/SettingsInputComponent"; import ViewListIcon from "@material-ui/icons/ViewList"; +import NotificationsIcon from "@material-ui/icons/Notifications"; import { ArrayInput, ArrayField, @@ -436,6 +437,29 @@ export const UserEdit = props => { + + } + path="pushers" + > + + + + + + + + + + + + + ); diff --git a/src/i18n/de.js b/src/i18n/de.js index 1b60545..a881b1d 100644 --- a/src/i18n/de.js +++ b/src/i18n/de.js @@ -223,6 +223,20 @@ export default { }, }, }, + pushers: { + name: "Pusher |||| Pushers", + fields: { + app: "App", + app_display_name: "App-Anzeigename", + app_id: "App ID", + device_display_name: "Geräte-Anzeigename", + kind: "Art", + lang: "Sprache", + profile_tag: "Profil-Tag", + pushkey: "Pushkey", + data: { url: "URL" }, + }, + }, servernotices: { name: "Serverbenachrichtigungen", send: "Servernachricht versenden", diff --git a/src/i18n/en.js b/src/i18n/en.js index 76b33aa..87d70be 100644 --- a/src/i18n/en.js +++ b/src/i18n/en.js @@ -220,6 +220,20 @@ export default { }, }, }, + pushers: { + name: "Pusher |||| Pushers", + fields: { + app: "App", + app_display_name: "App display name", + app_id: "App ID", + device_display_name: "Device display name", + kind: "Kind", + lang: "Language", + profile_tag: "Profile tag", + pushkey: "Pushkey", + data: { url: "URL" }, + }, + }, servernotices: { name: "Server Notices", send: "Send server notices", diff --git a/src/synapse/dataProvider.js b/src/synapse/dataProvider.js index f1f0816..a329e66 100644 --- a/src/synapse/dataProvider.js +++ b/src/synapse/dataProvider.js @@ -87,7 +87,9 @@ const resourceMap = { id: d.device_id, }), data: "devices", - total: json => json.devices.length, + total: json => { + return json.total; + }, reference: id => ({ endpoint: `/_synapse/admin/v2/users/${id}/devices`, }), @@ -111,7 +113,22 @@ const resourceMap = { endpoint: `/_synapse/admin/v1/rooms/${id}/members`, }), data: "members", - total: json => json.members.length, + total: json => { + return json.total; + }, + }, + pushers: { + map: p => ({ + ...p, + id: p.pushkey, + }), + reference: id => ({ + endpoint: `/_synapse/admin/v1/users/${id}/pushers`, + }), + data: "pushers", + total: json => { + return json.total; + }, }, joined_rooms: { map: jr => ({