feat: Added menu items and account security to settings
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { AdminCommService } from '../admin-comm.service';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
import { FormBuilder } from '@angular/forms';
|
||||
|
||||
@Component({
|
||||
selector: 'app-settings',
|
||||
@@ -11,10 +12,18 @@ export class SettingsComponent implements OnInit {
|
||||
usettings!: IUSettings
|
||||
reloadTimeout: boolean = false;
|
||||
|
||||
constructor (private readonly acu: AdminCommService, private readonly sb: MatSnackBar) { }
|
||||
constructor (private readonly acu: AdminCommService, private readonly sb: MatSnackBar, private readonly fb: FormBuilder) { }
|
||||
|
||||
accSec = this.fb.nonNullable.group({
|
||||
attempts: this.fb.nonNullable.control(1),
|
||||
time: this.fb.nonNullable.control(1),
|
||||
lockout: this.fb.nonNullable.control(1),
|
||||
})
|
||||
|
||||
ngOnInit(): void {
|
||||
this.acu.settings.getAll().subscribe((r) => {
|
||||
this.usettings = r
|
||||
this.accSecTimeouts = r.security.loginTimeout
|
||||
})
|
||||
}
|
||||
|
||||
@@ -31,10 +40,39 @@ export class SettingsComponent implements OnInit {
|
||||
this.send()
|
||||
}
|
||||
|
||||
saveSn(event: string[]) {
|
||||
this.usettings.menu.defaultItems.sn = event
|
||||
this.send()
|
||||
}
|
||||
saveKol(event: string[]) {
|
||||
this.usettings.menu.defaultItems.kol = event
|
||||
this.send()
|
||||
}
|
||||
|
||||
saveAccSecTimeouts() {
|
||||
this.usettings.security.loginTimeout = this.accSecTimeouts
|
||||
this.send()
|
||||
}
|
||||
|
||||
set accSecTimeouts(value: IUSettings['security']['loginTimeout']) {
|
||||
this.accSec.setValue({
|
||||
attempts: value.attempts,
|
||||
lockout: value.lockout / 60,
|
||||
time: value.time / 60
|
||||
})
|
||||
}
|
||||
get accSecTimeouts(): IUSettings['security']['loginTimeout'] {
|
||||
return {
|
||||
attempts: this.accSec.controls['attempts'].value,
|
||||
lockout: this.accSec.controls['lockout'].value * 60,
|
||||
time: this.accSec.controls['time'].value * 60
|
||||
}
|
||||
}
|
||||
|
||||
send() {
|
||||
this.acu.settings.post(this.usettings).subscribe((s) => {
|
||||
if (s.status == 200) {
|
||||
this.sb.open("Zapisano!", undefined, {duration: 1000})
|
||||
this.sb.open("Zapisano!", undefined, { duration: 1000 })
|
||||
} else {
|
||||
console.error(s);
|
||||
}
|
||||
@@ -51,7 +89,7 @@ export class SettingsComponent implements OnInit {
|
||||
}, 5000);
|
||||
this.acu.settings.reload().subscribe((s) => {
|
||||
if (s.status == 200) {
|
||||
this.sb.open("Przeładowano ustawienia!", undefined, {duration: 3000})
|
||||
this.sb.open("Przeładowano ustawienia!", undefined, { duration: 3000 })
|
||||
} else {
|
||||
console.error(s);
|
||||
}
|
||||
@@ -63,4 +101,17 @@ export interface IUSettings {
|
||||
keyrooms: string[];
|
||||
rooms: string[];
|
||||
cleanThings: string[];
|
||||
menu: {
|
||||
defaultItems: {
|
||||
sn: string[];
|
||||
kol: string[];
|
||||
}
|
||||
};
|
||||
security: {
|
||||
loginTimeout: {
|
||||
attempts: number;
|
||||
time: number;
|
||||
lockout: number;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user