mirror of
				https://github.com/UA-Fediland/synapse-admin.git
				synced 2025-10-31 03:28:28 +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