Skip to content

Commit

Permalink
reader and building tables added
Browse files Browse the repository at this point in the history
  • Loading branch information
kimamov committed Jan 18, 2021
1 parent d28362a commit 0601db6
Show file tree
Hide file tree
Showing 23 changed files with 656 additions and 12 deletions.
2 changes: 1 addition & 1 deletion client/.eslintcache

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions client/src/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ import {Fingerprint, VpnKey, FiberNew, Event, LockOpen, VerifiedUser} from '@mat
import UserList from './components/user/UserList';
import UserCreate from './components/user/UserCreate';
import UserEdit from './components/user/UserEdit';
import LockList from './components/lock/LockList';
import BuildingList from './components/building/BuildingList';


const isAdmin=permissions=>{
Expand All @@ -34,6 +36,8 @@ function App() {
return (
<Admin dataProvider={restProvider(serverAdress)} locale="en" authProvider={authProvider}>
{permissions=>[
<Resource icon={Fingerprint} name="building" list={BuildingList}/>,
<Resource icon={Fingerprint} name="lock" list={LockList} options={{label: 'Locks'}}/>,
<Resource icon={Fingerprint} name="reader" list={ReaderList} show={ReaderShow} edit={ReaderEdit} options={{label: 'Controller'}}/>,
<Resource icon={VpnKey} name="key" list={KeyList} create={KeyCreate} edit={KeyEdit} show={KeyShow}/>,
<Resource icon={FiberNew} name="newkey" list={NewKeyList} options={{label: 'Unknown Keys'}}/>,
Expand Down
22 changes: 22 additions & 0 deletions client/src/components/building/BuildingList.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// in posts.js
import * as React from "react";
import { List, Datagrid, TextField, EditButton, NumberField, ReferenceField} from 'react-admin';
import KeyActions from "./KeyActions";

export const BuildingList = (props) => (
<List
actions={<KeyActions/>}
{...props}
>
<Datagrid rowClick="show">
<TextField source="name"/>
<EditButton/>
</Datagrid>
</List>
);





export default BuildingList
52 changes: 52 additions & 0 deletions client/src/components/building/KeyActions.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import * as React from 'react';
import { cloneElement } from 'react';
import {
useListContext,
TopToolbar,
CreateButton,
ExportButton,
sanitizeListRestProps,
} from 'react-admin';

const KeyActions = (props) => {
const {
className,
exporter,
filters,
maxResults,
...rest
} = props;
const {
currentSort,
resource,
displayedFilters,
filterValues,
basePath,
showFilter,
total,
} = useListContext();


return (
<TopToolbar className={className} {...sanitizeListRestProps(rest)}>
{filters && cloneElement(filters, {
resource,
showFilter,
displayedFilters,
filterValues,
context: 'button',
})}
<CreateButton basePath={basePath} />
<ExportButton
disabled={total === 0}
resource={resource}
sort={currentSort}
filterValues={filterValues}
maxResults={maxResults}
/>

</TopToolbar>
);
};

export default KeyActions
23 changes: 23 additions & 0 deletions client/src/components/building/KeyCreate.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// in posts.js
import * as React from "react";
import { Create, SimpleForm, TextInput, BooleanInput, DateTimeInput, ReferenceInput, SelectInput } from 'react-admin';





const KeyCreate = (props) => (
<Create title="Create a Post" {...props} >
<SimpleForm>
<TextInput source="name" />
<TextInput source="uid" />
<DateTimeInput source="validUntil" showTime locales="de" />
<BooleanInput source="isOneTimeCode" />
<ReferenceInput reference="newkey" source="newkey_id" allowEmpty {...props}>
<SelectInput optionText="uid" />
</ReferenceInput>
</SimpleForm>
</Create>
);

export default KeyCreate
16 changes: 16 additions & 0 deletions client/src/components/building/KeyEdit.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import React from 'react'
import {Edit, SimpleForm, TextInput, DateInput, BooleanInput} from 'react-admin'

const KeyEdit = (props) => (
<Edit {...props}>
<SimpleForm>
<TextInput disabled source="id" />
<TextInput source="uid" disabled />
<TextInput source="name" />
<DateInput label="valid until" source="validUntil" showTime locales="de" />
<BooleanInput source="isOneTimeCode" />
</SimpleForm>
</Edit>
);

export default KeyEdit
33 changes: 33 additions & 0 deletions client/src/components/building/LockShow.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import React from 'react'
import {Datagrid, Show, SimpleShowLayout, ArrayField, BooleanField, NumberField, DateField, TextField} from 'react-admin';





const LockShow = (props) => {
return (
<Show title=" " {...props}>
<SimpleShowLayout {...props}>
<TextField source="name"/>
<TextField source="uid" />
<NumberField source="acctype" />
<NumberField source="acctype2" />
<NumberField source="acctype3" />
<NumberField source="acctype4" />
<DateField source="validUntil" showTime locales="de"/>
<BooleanField source="isOneTimeCode" />

<ArrayField label="KEY IS ON THESE READERS" source="readerKeys" >
<Datagrid>
<TextField label="name" source="reader.readerName" />
<TextField label="local ip" source="reader.ip" />
<DateField label="last ping" source="reader.lastPing" showTime locales="de"/>
</Datagrid>
</ArrayField>
</SimpleShowLayout>
</Show>
)
}

export default LockShow
52 changes: 52 additions & 0 deletions client/src/components/lock/KeyActions.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import * as React from 'react';
import { cloneElement } from 'react';
import {
useListContext,
TopToolbar,
CreateButton,
ExportButton,
sanitizeListRestProps,
} from 'react-admin';

const KeyActions = (props) => {
const {
className,
exporter,
filters,
maxResults,
...rest
} = props;
const {
currentSort,
resource,
displayedFilters,
filterValues,
basePath,
showFilter,
total,
} = useListContext();


return (
<TopToolbar className={className} {...sanitizeListRestProps(rest)}>
{filters && cloneElement(filters, {
resource,
showFilter,
displayedFilters,
filterValues,
context: 'button',
})}
<CreateButton basePath={basePath} />
<ExportButton
disabled={total === 0}
resource={resource}
sort={currentSort}
filterValues={filterValues}
maxResults={maxResults}
/>

</TopToolbar>
);
};

export default KeyActions
23 changes: 23 additions & 0 deletions client/src/components/lock/KeyCreate.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// in posts.js
import * as React from "react";
import { Create, SimpleForm, TextInput, BooleanInput, DateTimeInput, ReferenceInput, SelectInput } from 'react-admin';





const KeyCreate = (props) => (
<Create title="Create a Post" {...props} >
<SimpleForm>
<TextInput source="name" />
<TextInput source="uid" />
<DateTimeInput source="validUntil" showTime locales="de" />
<BooleanInput source="isOneTimeCode" />
<ReferenceInput reference="newkey" source="newkey_id" allowEmpty {...props}>
<SelectInput optionText="uid" />
</ReferenceInput>
</SimpleForm>
</Create>
);

export default KeyCreate
16 changes: 16 additions & 0 deletions client/src/components/lock/KeyEdit.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import React from 'react'
import {Edit, SimpleForm, TextInput, DateInput, BooleanInput} from 'react-admin'

const KeyEdit = (props) => (
<Edit {...props}>
<SimpleForm>
<TextInput disabled source="id" />
<TextInput source="uid" disabled />
<TextInput source="name" />
<DateInput label="valid until" source="validUntil" showTime locales="de" />
<BooleanInput source="isOneTimeCode" />
</SimpleForm>
</Edit>
);

export default KeyEdit
30 changes: 30 additions & 0 deletions client/src/components/lock/LockList.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// in posts.js
import * as React from "react";
import { List, Datagrid, TextField, EditButton, NumberField, ReferenceField} from 'react-admin';
import KeyActions from "./KeyActions";

export const LockList = (props) => (
<List
actions={<KeyActions/>}
{...props}
>
<Datagrid rowClick="show">
<TextField source="name"/>
<TextField source="type" />
<NumberField source="slot"/>
<ReferenceField label="Building" reference="building" source="building.id" link="show">
<TextField source="name"/>
</ReferenceField>
<ReferenceField label="Reader" reference="reader" source="reader.id" link="show">
<TextField source="readerName"/>
</ReferenceField>
<EditButton/>
</Datagrid>
</List>
);





export default LockList
33 changes: 33 additions & 0 deletions client/src/components/lock/LockShow.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import React from 'react'
import {Datagrid, Show, SimpleShowLayout, ArrayField, BooleanField, NumberField, DateField, TextField} from 'react-admin';





const LockShow = (props) => {
return (
<Show title=" " {...props}>
<SimpleShowLayout {...props}>
<TextField source="name"/>
<TextField source="uid" />
<NumberField source="acctype" />
<NumberField source="acctype2" />
<NumberField source="acctype3" />
<NumberField source="acctype4" />
<DateField source="validUntil" showTime locales="de"/>
<BooleanField source="isOneTimeCode" />

<ArrayField label="KEY IS ON THESE READERS" source="readerKeys" >
<Datagrid>
<TextField label="name" source="reader.readerName" />
<TextField label="local ip" source="reader.ip" />
<DateField label="last ping" source="reader.lastPing" showTime locales="de"/>
</Datagrid>
</ArrayField>
</SimpleShowLayout>
</Show>
)
}

export default LockShow
Loading

0 comments on commit 0601db6

Please sign in to comment.