Skip to content

Commit

Permalink
Merge pull request #2 from kantimam/deploy
Browse files Browse the repository at this point in the history
Deploy
  • Loading branch information
kimamov authored Jan 18, 2021
2 parents 9e7751e + 1afa8a5 commit 33638f3
Show file tree
Hide file tree
Showing 31 changed files with 703 additions and 61 deletions.
2 changes: 1 addition & 1 deletion client/.eslintcache

Large diffs are not rendered by default.

10 changes: 8 additions & 2 deletions client/src/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,14 @@ import AccessList from './components/access/AccessList'
import { NewKeyList } from './components/newKey/NewKeyList';
import authProvider from './AuthProvider';
import ReaderEdit from './components/reader/ReaderEdit';
import {Fingerprint, VpnKey, FiberNew, Event, LockOpen, VerifiedUser} from '@material-ui/icons';
import {Fingerprint, VpnKey, FiberNew, Event, LockOpen, VerifiedUser, LocationCity, Lock} from '@material-ui/icons';
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 LockCreate from './components/lock/LockCreate';
import BuildingList from './components/building/BuildingList';
import BuildingCreate from './components/building/BuildingCreate';


const isAdmin=permissions=>{
Expand All @@ -34,7 +38,9 @@ function App() {
return (
<Admin dataProvider={restProvider(serverAdress)} locale="en" authProvider={authProvider}>
{permissions=>[
<Resource icon={Fingerprint} name="reader" list={ReaderList} show={ReaderShow} edit={ReaderEdit} options={{label: 'Controller'}}/>,
<Resource icon={LocationCity} name="building" list={BuildingList} create={BuildingCreate}/>,
<Resource icon={Lock} name="lock" list={LockList} create={LockCreate} options={{label: 'Locks'}}/>,
<Resource icon={Fingerprint} name="reader" list={ReaderList} show={ReaderShow} edit={ReaderEdit} options={{label: 'Controllers'}}/>,
<Resource icon={VpnKey} name="key" list={KeyList} create={KeyCreate} edit={KeyEdit} show={KeyShow}/>,
<Resource icon={FiberNew} name="newkey" list={NewKeyList} options={{label: 'Unknown Keys'}}/>,
isAdmin(permissions) && <Resource icon={Event} name="event" list={EventList} />,
Expand Down
18 changes: 18 additions & 0 deletions client/src/components/building/BuildingCreate.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// in posts.js
import * as React from "react";
import { Create, SimpleForm, TextInput, BooleanInput, DateTimeInput, ReferenceInput, SelectInput } from 'react-admin';





const BuildingCreate = (props) => (
<Create title="Create a Building" {...props} >
<SimpleForm>
<TextInput source="name" />

</SimpleForm>
</Create>
);

export default BuildingCreate
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
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
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
25 changes: 25 additions & 0 deletions client/src/components/lock/LockCreate.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// in posts.js
import * as React from "react";
import { Create, SimpleForm, TextInput, BooleanInput, DateTimeInput, ReferenceInput, SelectInput } from 'react-admin';





const LockCreate = (props) => (
<Create title="Create a Lock" {...props} >
<SimpleForm>
<TextInput source="name" />
<TextInput source="type" />

<ReferenceInput reference="reader" source="readerId" allowEmpty {...props}>
<SelectInput optionText="readerName" />
</ReferenceInput>
<ReferenceInput reference="building" source="buildingId" allowEmpty {...props}>
<SelectInput optionText="name" />
</ReferenceInput>
</SimpleForm>
</Create>
);

export default LockCreate
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="buildingId" link="show">
<TextField source="name"/>
</ReferenceField>
<ReferenceField label="Reader" reference="reader" source="readerId" 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
13 changes: 11 additions & 2 deletions client/src/components/reader/ReaderShow.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,15 @@ const ShowPropsExtractor=({children, ...props})=>{
<TextField source="readerName" />
<TextField source="ip" />
<DateField source="lastPing" showTime locales="de"/>


<ArrayField label="CONNECTED LOCKS" source="locks" >
<Datagrid>
<TextField label="name" source="name" />
<NumberField source="slot" />
</Datagrid>
</ArrayField>

<TextButtonField onClick={()=>openDoor(1)} label="Relay 1 (acctype)" variant="contained" source="acctypeName">
<LockOpen/>
</TextButtonField>
Expand Down Expand Up @@ -84,8 +93,8 @@ const ShowPropsExtractor=({children, ...props})=>{
<BooleanInput label="acctype2" source="acctype2"/>
<BooleanInput label="acctype3" source="acctype3"/>
<BooleanInput label="acctype4" source="acctype4"/>
<BooleanInput label="acctype5" source="acctype4"/>
<BooleanInput label="acctype6" source="acctype4"/>
<BooleanInput label="acctype5" source="acctype5"/>
<BooleanInput label="acctype6" source="acctype6"/>
</SimpleForm>
</Create>

Expand Down
6 changes: 3 additions & 3 deletions src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ export const mqttConfig={


export const readerConfig={
deleteTime: 2000,
syncTime: 300,
readerListWaitTime: 2000,
deleteTime: 4000,
syncTime: 600,
readerListWaitTime: 4000,
}

export const serverConfig={
Expand Down
Loading

0 comments on commit 33638f3

Please sign in to comment.