Add sort and filter to rooms list and update to users list

This commit is contained in:
dklimpel 2020-03-28 14:01:41 +01:00
parent 7eeb60539f
commit ae0a88a7ab
5 changed files with 35 additions and 8 deletions

View File

@ -1,13 +1,29 @@
import React from "react";
import { Datagrid, List, TextField } from "react-admin";
import {
Datagrid,
List,
TextField,
TextInput,
Filter
} from "react-admin";
const RoomFilter = (props) => (
<Filter {...props}>
<TextInput source="search_term" alwaysOn />
</Filter>
);
export const RoomList = props => (
<List {...props}>
<List
{...props}
sort={{ field: "alphabetical", order: "DESC" }}
filters={<RoomFilter />}
>
<Datagrid>
<TextField source="room_id" />
<TextField source="name" />
<TextField source="canonical_alias" />
<TextField source="joined_members" />
<TextField source="room_id" sortable={false} />
<TextField source="name" sortBy="alphabetical" />
<TextField source="canonical_alias" sortable={false} />
<TextField source="joined_members" sortBy="size" />
</Datagrid>
</List>
);

View File

@ -43,7 +43,7 @@ export const UserList = props => (
>
<ImageField source="avatar_url" title="displayname" />
</ReferenceField>
<TextField source="id" />
<TextField source="id" sortable={false} />
{/* Hack since the users endpoint does not give displaynames in the list*/}
<ReferenceField
source="name"

View File

@ -36,6 +36,7 @@ export default {
name: "Name",
canonical_alias: "Alias",
joined_members: "Mitglieder",
search_term: "Suche",
},
},
},

View File

@ -36,6 +36,7 @@ export default {
name: "Name",
canonical_alias: "Alias",
joined_members: "Members",
search_term: "Search",
},
},
},

View File

@ -55,8 +55,14 @@ function filterNullValues(key, value) {
const dataProvider = {
getList: (resource, params) => {
console.log("getList " + resource);
const { user_id, guests, deactivated } = params.filter;
const { user_id, guests, deactivated, search_term } = params.filter;
const { page, perPage } = params.pagination;
var { field, order } = params.sort;
if ( order === "DESC") {
order = "b";
} else {
order = "f";
}
const from = (page - 1) * perPage;
const query = {
from: from,
@ -64,6 +70,9 @@ const dataProvider = {
user_id: user_id,
guests: guests,
deactivated: deactivated,
order_by: field,
search_term: search_term,
dir: order,
};
const homeserver = localStorage.getItem("base_url");
if (!homeserver || !(resource in resourceMap)) return Promise.reject();