https://github.com/marmelab/react-admin/issues/4349#issuecomment-578594735
*/
-
+ <>
{record.quarantined_by && (
{
arrow
>
-
@@ -232,13 +232,13 @@ export const ProtectMediaButton = () => {
})}
>
-
+
)}
-
+ >
);
};
@@ -247,7 +247,7 @@ export const QuarantineMediaButton = () => {
const translate = useTranslate();
const refresh = useRefresh();
const notify = useNotify();
- const [create, { loading }] = useCreate();
+ const [create, { isLoading }] = useCreate();
const [deleteOne] = useDelete();
if (!record) return null;
@@ -272,7 +272,7 @@ export const QuarantineMediaButton = () => {
const handleRemoveQuarantaine = () => {
deleteOne(
"quarantine_media",
- { id: record.id, previousData: record },
+ { id: record.id },
{
onSuccess: () => {
notify("resources.quarantine_media.action.send_success");
@@ -287,7 +287,7 @@ export const QuarantineMediaButton = () => {
};
return (
-
+ <>
{record.safe_from_quarantine && (
{
})}
>
-
+
@@ -308,7 +308,11 @@ export const QuarantineMediaButton = () => {
})}
>
-
+
@@ -321,12 +325,12 @@ export const QuarantineMediaButton = () => {
})}
>
-
+
)}
-
+ >
);
};
diff --git a/src/components/rooms.js b/src/components/rooms.js
index 0a23b6a..d9e46a5 100644
--- a/src/components/rooms.js
+++ b/src/components/rooms.js
@@ -1,4 +1,4 @@
-import React, { Fragment } from "react";
+import React from "react";
import {
BooleanField,
BulkDeleteButton,
@@ -7,7 +7,6 @@ import {
DatagridConfigurable,
DeleteButton,
ExportButton,
- Filter,
FunctionField,
List,
NumberField,
@@ -35,6 +34,7 @@ import UserIcon from "@mui/icons-material/Group";
import ViewListIcon from "@mui/icons-material/ViewList";
import VisibilityIcon from "@mui/icons-material/Visibility";
import EventIcon from "@mui/icons-material/Event";
+import RoomIcon from "@mui/icons-material/ViewList";
import {
RoomDirectoryBulkDeleteButton,
RoomDirectoryBulkSaveButton,
@@ -274,7 +274,7 @@ export const RoomShow = () => {
};
const RoomBulkActionButtons = () => (
-
+ <>
(
confirmContent="resources.rooms.action.erase.content"
mutationMode="pessimistic"
/>
-
+ >
);
-const RoomFilter = props => (
-
-
-
-);
+const roomFilters = [
];
const RoomListActions = () => (
@@ -298,14 +294,15 @@ const RoomListActions = () => (
);
-export const RoomList = () => {
+export const RoomList = props => {
const theme = useTheme();
return (
}
sort={{ field: "name", order: "ASC" }}
- filters={
}
+ filters={roomFilters}
actions={
}
>
{
);
};
+
+const resource = {
+ name: "rooms",
+ icon: RoomIcon,
+ list: RoomList,
+ show: RoomShow,
+};
+
+export default resource;
diff --git a/src/components/statistics.js b/src/components/statistics.js
index 4872f40..a277c20 100644
--- a/src/components/statistics.js
+++ b/src/components/statistics.js
@@ -3,7 +3,6 @@ import { cloneElement } from "react";
import {
Datagrid,
ExportButton,
- Filter,
List,
NumberField,
Pagination,
@@ -13,6 +12,7 @@ import {
TopToolbar,
useListContext,
} from "react-admin";
+import EqualizerIcon from "@mui/icons-material/Equalizer";
import { DeleteMediaButton } from "./media";
const ListActions = props => {
@@ -45,32 +45,34 @@ const UserMediaStatsPagination = () => (
);
-const UserMediaStatsFilter = props => (
-
-
-
+const userMediaStatsFilters = [];
+
+export const UserMediaStatsList = () => (
+
}
+ filters={userMediaStatsFilters}
+ pagination={}
+ sort={{ field: "media_length", order: "DESC" }}
+ >
+ "/users/" + id + "/media"}
+ bulkActionButtons={false}
+ >
+
+
+
+
+
+
);
-export const UserMediaStatsList = props => {
- return (
-
}
- filters={}
- pagination={}
- sort={{ field: "media_length", order: "DESC" }}
- >
- "/users/" + id + "/media"}
- bulkActionButtons={false}
- >
-
-
-
-
-
-
- );
+const resource = {
+ name: "user_media_statistics",
+ icon: EqualizerIcon,
+ list: UserMediaStatsList,
};
+
+export default resource;
diff --git a/src/components/users.js b/src/components/users.js
index e64157c..995e5dd 100644
--- a/src/components/users.js
+++ b/src/components/users.js
@@ -1,4 +1,4 @@
-import React, { cloneElement, Fragment } from "react";
+import React, { cloneElement } from "react";
import AssignmentIndIcon from "@mui/icons-material/AssignmentInd";
import ContactMailIcon from "@mui/icons-material/ContactMail";
import DevicesIcon from "@mui/icons-material/Devices";
@@ -7,6 +7,7 @@ import NotificationsIcon from "@mui/icons-material/Notifications";
import PermMediaIcon from "@mui/icons-material/PermMedia";
import PersonPinIcon from "@mui/icons-material/PersonPin";
import SettingsInputComponentIcon from "@mui/icons-material/SettingsInputComponent";
+import UserIcon from "@mui/icons-material/Group";
import ViewListIcon from "@mui/icons-material/ViewList";
import {
ArrayInput,
@@ -17,7 +18,6 @@ import {
Create,
Edit,
List,
- Filter,
Toolbar,
SimpleForm,
SimpleFormIterator,
@@ -125,60 +125,55 @@ const UserPagination = () => (
);
-const UserFilter = props => (
-
-
-
-
-
-);
+const userFilters = [
+ ,
+ ,
+ ,
+];
-const UserBulkActionButtons = props => (
-
-
+const UserBulkActionButtons = () => (
+ <>
+
-
+ >
);
-export const UserList = props => {
- return (
-
}
- filterDefaultValues={{ guests: true, deactivated: false }}
- sort={{ field: "name", order: "ASC" }}
- actions={}
- pagination={}
- >
- }>
-
-
-
-
-
-
-
-
-
- );
-};
+export const UserList = () => (
+
}
+ pagination={}
+ >
+ }>
+
+
+
+
+
+
+
+
+
+);
// https://matrix.org/docs/spec/appendices#user-identifiers
// here only local part of user_id
@@ -302,7 +297,7 @@ export const UserCreate = props => (
);
-const UserTitle = props => {
+const UserTitle = () => {
const record = useRecordContext();
const translate = useTranslate();
return (
@@ -529,3 +524,13 @@ export const UserEdit = props => {
);
};
+
+const resource = {
+ name: "users",
+ icon: UserIcon,
+ list: UserList,
+ edit: UserEdit,
+ create: UserCreate,
+};
+
+export default resource;
diff --git a/src/synapse/dataProvider.js b/src/synapse/dataProvider.js
index 4a7e3cb..46be560 100644
--- a/src/synapse/dataProvider.js
+++ b/src/synapse/dataProvider.js
@@ -98,7 +98,7 @@ const resourceMap = {
}),
delete: params => ({
endpoint: `/_synapse/admin/v2/users/${encodeURIComponent(
- params.user_id
+ params.meta.user_id
)}/devices/${params.id}`,
}),
},
@@ -184,9 +184,9 @@ const resourceMap = {
delete: params => ({
endpoint: `/_synapse/admin/v1/media/${localStorage.getItem(
"home_server"
- )}/delete?before_ts=${params.before_ts}&size_gt=${
- params.size_gt
- }&keep_profiles=${params.keep_profiles}`,
+ )}/delete?before_ts=${params.meta.before_ts}&size_gt=${
+ params.meta.size_gt
+ }&keep_profiles=${params.meta.keep_profiles}`,
method: "POST",
}),
},
@@ -197,7 +197,7 @@ const resourceMap = {
method: "POST",
}),
delete: params => ({
- endpoint: `/_synapse/admin/v1/media/unprotect/${params.media_id}`,
+ endpoint: `/_synapse/admin/v1/media/unprotect/${params.id}`,
method: "POST",
}),
},
@@ -212,7 +212,7 @@ const resourceMap = {
delete: params => ({
endpoint: `/_synapse/admin/v1/media/unquarantine/${localStorage.getItem(
"home_server"
- )}/${params.media_id}`,
+ )}/${params.id}`,
method: "POST",
}),
},
@@ -534,7 +534,7 @@ const dataProvider = {
const res = resourceMap[resource];
if ("delete" in res) {
- const del = res["delete"](params.previousData);
+ const del = res["delete"](params);
const endpoint_url = homeserver + del.endpoint;
return jsonClient(endpoint_url, {
method: "method" in del ? del.method : "DELETE",
@@ -546,7 +546,7 @@ const dataProvider = {
const endpoint_url = homeserver + res.path;
return jsonClient(`${endpoint_url}/${params.id}`, {
method: "DELETE",
- body: JSON.stringify(params.previousData, filterNullValues),
+ body: JSON.stringify(params, filterNullValues),
}).then(({ json }) => ({
data: json,
}));