u
This commit is contained in:
@@ -59,6 +59,7 @@ export default class NumberSettingsPanel extends PureComponent {
|
||||
: [];
|
||||
const numbersStatus = companyAutomat.state.numbersStatus;
|
||||
this.state = {
|
||||
isAdmin: companyAutomat.state.current?.role === 'admin',
|
||||
status:
|
||||
numbersStatus === 'ready'
|
||||
? 'ready'
|
||||
@@ -81,6 +82,7 @@ export default class NumberSettingsPanel extends PureComponent {
|
||||
this.unsub = companyAutomat.subscribe(this, (state) => {
|
||||
const numbers = Array.isArray(state.numbers) ? state.numbers : [];
|
||||
return {
|
||||
isAdmin: state.current?.role === 'admin',
|
||||
status:
|
||||
state.numbersStatus === 'ready'
|
||||
? 'ready'
|
||||
@@ -121,6 +123,7 @@ export default class NumberSettingsPanel extends PureComponent {
|
||||
}
|
||||
|
||||
async handleSave(id) {
|
||||
if (!this.state.isAdmin) return;
|
||||
const draft = this.state.drafts[id];
|
||||
if (!draft || draft.busy) return;
|
||||
const row = this.state.numbers.find((r) => r.id === id);
|
||||
@@ -211,7 +214,7 @@ export default class NumberSettingsPanel extends PureComponent {
|
||||
}
|
||||
|
||||
render() {
|
||||
const { status, error, numbers, drafts } = this.state;
|
||||
const { isAdmin, status, error, numbers, drafts } = this.state;
|
||||
|
||||
if (status === 'loading') {
|
||||
return (
|
||||
@@ -249,7 +252,7 @@ export default class NumberSettingsPanel extends PureComponent {
|
||||
<TextInput
|
||||
size="small"
|
||||
value={draft.prefix}
|
||||
disabled={draft.busy}
|
||||
disabled={!isAdmin || draft.busy}
|
||||
onChange={(e) => this.handleChange(row.id, 'prefix', e.target.value)}
|
||||
sx={{ input: { fontFamily: 'monospace' } }}
|
||||
/>
|
||||
@@ -259,7 +262,7 @@ export default class NumberSettingsPanel extends PureComponent {
|
||||
size="small"
|
||||
type="number"
|
||||
value={draft.padding}
|
||||
disabled={draft.busy}
|
||||
disabled={!isAdmin || draft.busy}
|
||||
slotProps={{ htmlInput: { min: 1, step: 1 } }}
|
||||
onChange={(e) => this.handleChange(row.id, 'padding', e.target.value)}
|
||||
sx={{ input: { fontFamily: 'monospace' } }}
|
||||
@@ -270,7 +273,7 @@ export default class NumberSettingsPanel extends PureComponent {
|
||||
size="small"
|
||||
type="number"
|
||||
value={draft.next}
|
||||
disabled={draft.busy}
|
||||
disabled={!isAdmin || draft.busy}
|
||||
slotProps={{ htmlInput: { min: 0, step: 1 } }}
|
||||
onChange={(e) => this.handleChange(row.id, 'next', e.target.value)}
|
||||
sx={{ input: { fontFamily: 'monospace' } }}
|
||||
@@ -295,7 +298,7 @@ export default class NumberSettingsPanel extends PureComponent {
|
||||
size="small"
|
||||
aria-label="Speichern"
|
||||
color="primary"
|
||||
disabled={draft.busy}
|
||||
disabled={!isAdmin || draft.busy}
|
||||
onClick={() => void this.handleSave(row.id)}
|
||||
>
|
||||
<SaveOutlinedIcon fontSize="small" />
|
||||
|
||||
Reference in New Issue
Block a user