mirror of
https://github.com/UA-Fediland/synapse-admin.git
synced 2024-11-25 07:45:23 +00:00
Add a new tab to user page with pushers (#85)
* Add a new tab to user page with pushers * Update pushers `total` and `id`
This commit is contained in:
parent
425c210cfc
commit
f2a1275673
5 changed files with 69 additions and 0 deletions
|
@ -52,6 +52,7 @@ const App = () => (
|
||||||
<Resource name="connections" />
|
<Resource name="connections" />
|
||||||
<Resource name="devices" />
|
<Resource name="devices" />
|
||||||
<Resource name="room_members" />
|
<Resource name="room_members" />
|
||||||
|
<Resource name="pushers" />
|
||||||
<Resource name="servernotices" />
|
<Resource name="servernotices" />
|
||||||
</Admin>
|
</Admin>
|
||||||
);
|
);
|
||||||
|
|
|
@ -5,6 +5,7 @@ import ContactMailIcon from "@material-ui/icons/ContactMail";
|
||||||
import DevicesIcon from "@material-ui/icons/Devices";
|
import DevicesIcon from "@material-ui/icons/Devices";
|
||||||
import GetAppIcon from "@material-ui/icons/GetApp";
|
import GetAppIcon from "@material-ui/icons/GetApp";
|
||||||
import SettingsInputComponentIcon from "@material-ui/icons/SettingsInputComponent";
|
import SettingsInputComponentIcon from "@material-ui/icons/SettingsInputComponent";
|
||||||
|
import NotificationsIcon from "@material-ui/icons/Notifications";
|
||||||
import {
|
import {
|
||||||
ArrayInput,
|
ArrayInput,
|
||||||
ArrayField,
|
ArrayField,
|
||||||
|
@ -312,6 +313,7 @@ export const UserEdit = props => {
|
||||||
/>
|
/>
|
||||||
<TextField source="consent_version" />
|
<TextField source="consent_version" />
|
||||||
</FormTab>
|
</FormTab>
|
||||||
|
|
||||||
<FormTab
|
<FormTab
|
||||||
label="resources.users.threepid"
|
label="resources.users.threepid"
|
||||||
icon={<ContactMailIcon />}
|
icon={<ContactMailIcon />}
|
||||||
|
@ -330,6 +332,7 @@ export const UserEdit = props => {
|
||||||
</SimpleFormIterator>
|
</SimpleFormIterator>
|
||||||
</ArrayInput>
|
</ArrayInput>
|
||||||
</FormTab>
|
</FormTab>
|
||||||
|
|
||||||
<FormTab
|
<FormTab
|
||||||
label={translate("resources.devices.name", { smart_count: 2 })}
|
label={translate("resources.devices.name", { smart_count: 2 })}
|
||||||
icon={<DevicesIcon />}
|
icon={<DevicesIcon />}
|
||||||
|
@ -361,6 +364,7 @@ export const UserEdit = props => {
|
||||||
</Datagrid>
|
</Datagrid>
|
||||||
</ReferenceManyField>
|
</ReferenceManyField>
|
||||||
</FormTab>
|
</FormTab>
|
||||||
|
|
||||||
<FormTab
|
<FormTab
|
||||||
label="resources.connections.name"
|
label="resources.connections.name"
|
||||||
icon={<SettingsInputComponentIcon />}
|
icon={<SettingsInputComponentIcon />}
|
||||||
|
@ -400,6 +404,29 @@ export const UserEdit = props => {
|
||||||
</ArrayField>
|
</ArrayField>
|
||||||
</ReferenceField>
|
</ReferenceField>
|
||||||
</FormTab>
|
</FormTab>
|
||||||
|
|
||||||
|
<FormTab
|
||||||
|
label={translate("resources.pushers.name", { smart_count: 2 })}
|
||||||
|
icon={<NotificationsIcon />}
|
||||||
|
path="pushers"
|
||||||
|
>
|
||||||
|
<ReferenceManyField
|
||||||
|
reference="pushers"
|
||||||
|
target="user_id"
|
||||||
|
addLabel={false}
|
||||||
|
>
|
||||||
|
<Datagrid style={{ width: "100%" }}>
|
||||||
|
<TextField source="kind" sortable={false} />
|
||||||
|
<TextField source="app_display_name" sortable={false} />
|
||||||
|
<TextField source="app_id" sortable={false} />
|
||||||
|
<TextField source="data.url" sortable={false} />
|
||||||
|
<TextField source="device_display_name" sortable={false} />
|
||||||
|
<TextField source="lang" sortable={false} />
|
||||||
|
<TextField source="profile_tag" sortable={false} />
|
||||||
|
<TextField source="pushkey" sortable={false} />
|
||||||
|
</Datagrid>
|
||||||
|
</ReferenceManyField>
|
||||||
|
</FormTab>
|
||||||
</TabbedForm>
|
</TabbedForm>
|
||||||
</Edit>
|
</Edit>
|
||||||
);
|
);
|
||||||
|
|
|
@ -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: {
|
servernotices: {
|
||||||
name: "Serverbenachrichtigungen",
|
name: "Serverbenachrichtigungen",
|
||||||
send: "Servernachricht versenden",
|
send: "Servernachricht versenden",
|
||||||
|
|
|
@ -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: {
|
servernotices: {
|
||||||
name: "Server Notices",
|
name: "Server Notices",
|
||||||
send: "Send server notices",
|
send: "Send server notices",
|
||||||
|
|
|
@ -117,6 +117,19 @@ const resourceMap = {
|
||||||
return json.total;
|
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;
|
||||||
|
},
|
||||||
|
},
|
||||||
servernotices: {
|
servernotices: {
|
||||||
map: n => ({ id: n.event_id }),
|
map: n => ({ id: n.event_id }),
|
||||||
create: data => ({
|
create: data => ({
|
||||||
|
|
Loading…
Reference in a new issue