Add sort and filter to rooms list and update to users list
This commit is contained in:
parent
7eeb60539f
commit
ae0a88a7ab
@ -1,13 +1,29 @@
|
|||||||
import React from "react";
|
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 => (
|
export const RoomList = props => (
|
||||||
<List {...props}>
|
<List
|
||||||
|
{...props}
|
||||||
|
sort={{ field: "alphabetical", order: "DESC" }}
|
||||||
|
filters={<RoomFilter />}
|
||||||
|
>
|
||||||
<Datagrid>
|
<Datagrid>
|
||||||
<TextField source="room_id" />
|
<TextField source="room_id" sortable={false} />
|
||||||
<TextField source="name" />
|
<TextField source="name" sortBy="alphabetical" />
|
||||||
<TextField source="canonical_alias" />
|
<TextField source="canonical_alias" sortable={false} />
|
||||||
<TextField source="joined_members" />
|
<TextField source="joined_members" sortBy="size" />
|
||||||
</Datagrid>
|
</Datagrid>
|
||||||
</List>
|
</List>
|
||||||
);
|
);
|
||||||
|
@ -43,7 +43,7 @@ export const UserList = props => (
|
|||||||
>
|
>
|
||||||
<ImageField source="avatar_url" title="displayname" />
|
<ImageField source="avatar_url" title="displayname" />
|
||||||
</ReferenceField>
|
</ReferenceField>
|
||||||
<TextField source="id" />
|
<TextField source="id" sortable={false} />
|
||||||
{/* Hack since the users endpoint does not give displaynames in the list*/}
|
{/* Hack since the users endpoint does not give displaynames in the list*/}
|
||||||
<ReferenceField
|
<ReferenceField
|
||||||
source="name"
|
source="name"
|
||||||
|
@ -36,6 +36,7 @@ export default {
|
|||||||
name: "Name",
|
name: "Name",
|
||||||
canonical_alias: "Alias",
|
canonical_alias: "Alias",
|
||||||
joined_members: "Mitglieder",
|
joined_members: "Mitglieder",
|
||||||
|
search_term: "Suche",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -36,6 +36,7 @@ export default {
|
|||||||
name: "Name",
|
name: "Name",
|
||||||
canonical_alias: "Alias",
|
canonical_alias: "Alias",
|
||||||
joined_members: "Members",
|
joined_members: "Members",
|
||||||
|
search_term: "Search",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -55,8 +55,14 @@ function filterNullValues(key, value) {
|
|||||||
const dataProvider = {
|
const dataProvider = {
|
||||||
getList: (resource, params) => {
|
getList: (resource, params) => {
|
||||||
console.log("getList " + resource);
|
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;
|
const { page, perPage } = params.pagination;
|
||||||
|
var { field, order } = params.sort;
|
||||||
|
if ( order === "DESC") {
|
||||||
|
order = "b";
|
||||||
|
} else {
|
||||||
|
order = "f";
|
||||||
|
}
|
||||||
const from = (page - 1) * perPage;
|
const from = (page - 1) * perPage;
|
||||||
const query = {
|
const query = {
|
||||||
from: from,
|
from: from,
|
||||||
@ -64,6 +70,9 @@ const dataProvider = {
|
|||||||
user_id: user_id,
|
user_id: user_id,
|
||||||
guests: guests,
|
guests: guests,
|
||||||
deactivated: deactivated,
|
deactivated: deactivated,
|
||||||
|
order_by: field,
|
||||||
|
search_term: search_term,
|
||||||
|
dir: order,
|
||||||
};
|
};
|
||||||
const homeserver = localStorage.getItem("base_url");
|
const homeserver = localStorage.getItem("base_url");
|
||||||
if (!homeserver || !(resource in resourceMap)) return Promise.reject();
|
if (!homeserver || !(resource in resourceMap)) return Promise.reject();
|
||||||
|
Loading…
Reference in New Issue
Block a user