2020-02-07 18:19:01 +03:00
|
|
|
import React from "react";
|
2020-04-17 00:31:41 +03:00
|
|
|
import {
|
|
|
|
BooleanInput,
|
|
|
|
Create,
|
|
|
|
Datagrid,
|
|
|
|
List,
|
|
|
|
Pagination,
|
|
|
|
SimpleForm,
|
|
|
|
TextField,
|
|
|
|
TextInput,
|
|
|
|
} from "react-admin";
|
2020-03-27 23:02:37 +03:00
|
|
|
|
|
|
|
const RoomPagination = props => (
|
|
|
|
<Pagination {...props} rowsPerPageOptions={[10, 25, 50, 100, 500, 1000]} />
|
|
|
|
);
|
2020-02-07 18:19:01 +03:00
|
|
|
|
|
|
|
export const RoomList = props => (
|
2020-03-27 23:02:37 +03:00
|
|
|
<List {...props} pagination={<RoomPagination />}>
|
2020-02-07 18:19:01 +03:00
|
|
|
<Datagrid>
|
|
|
|
<TextField source="room_id" />
|
|
|
|
<TextField source="name" />
|
|
|
|
<TextField source="canonical_alias" />
|
|
|
|
<TextField source="joined_members" />
|
|
|
|
</Datagrid>
|
|
|
|
</List>
|
|
|
|
);
|
2020-04-17 00:31:41 +03:00
|
|
|
|
|
|
|
function generateRoomRecord() {
|
|
|
|
return {
|
|
|
|
room_name: "",
|
|
|
|
public: true,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
const validateDisplayName = fieldval => fieldval === undefined ? "synapseadmin.rooms.room_name_required" : fieldval.length === 0 ? "synapseadmin.rooms.room_name_required" : undefined;
|
|
|
|
|
|
|
|
const removeLeadingWhitespace = fieldVal => fieldVal === undefined ? undefined : fieldVal.trimStart();
|
|
|
|
|
|
|
|
export const RoomCreate = props => (
|
|
|
|
<Create record={generateRoomRecord()} {...props}>
|
|
|
|
<SimpleForm>
|
|
|
|
<TextInput source="room_name"
|
|
|
|
label="synapseadmin.rooms.room_name"
|
|
|
|
parse={removeLeadingWhitespace}
|
|
|
|
validate={validateDisplayName}/>
|
|
|
|
<BooleanInput source="public"
|
|
|
|
label="synapseadmin.rooms.make_public"/>
|
|
|
|
</SimpleForm>
|
|
|
|
</Create>
|
|
|
|
);
|