created settings page

This commit is contained in:
2024-11-08 15:20:01 +01:00
parent c364c6faf9
commit d957ce6a1d
16 changed files with 195 additions and 102 deletions

View File

@@ -1,14 +1,61 @@
import { Component } from '@angular/core';
import { IonHeader, IonToolbar, IonTitle, IonContent } from '@ionic/angular/standalone';
import { ExploreContainerComponent } from '../explore-container/explore-container.component';
import {
IonHeader,
IonToolbar,
IonTitle,
IonContent,
IonList,
IonItem,
IonInput,
IonToggle, IonButton, IonLabel, IonItemDivider, IonCol, ToastController
} from '@ionic/angular/standalone';
import {Settings} from "../../models/settings";
import {SettingsService} from "../../services/settings.service";
import {FormsModule} from "@angular/forms";
import {addIcons} from "ionicons";
import { save } from 'ionicons/icons';
@Component({
selector: 'app-tab3',
templateUrl: 'settings.page.html',
styleUrls: ['settings.page.scss'],
standalone: true,
imports: [IonHeader, IonToolbar, IonTitle, IonContent, ExploreContainerComponent],
imports: [IonHeader, IonToolbar, IonTitle, IonContent, IonList, IonItem, IonInput, FormsModule, IonToggle, IonButton, IonLabel, IonItemDivider, IonCol],
})
export class SettingsPage {
constructor() {}
public settings: Settings;
public input: Settings = {};
constructor(private settingsProvider: SettingsService, private toasts: ToastController) {
this.settings = settingsProvider.loadSettings();
this.input.notifications = this.settings.notifications;
addIcons({save});
}
public async save() {
if (this.input.maxWorkTime != undefined)
this.input.maxWorkTime = this.input.maxWorkTime * 60;
this.input.maxWorkTime ??= this.settings.maxWorkTime;
this.input.defaultPauseTime ??= this.settings.defaultPauseTime;
this.input.pauseAfter6 ??= this.settings.pauseAfter6;
this.input.pauseAfter9 ??= this.settings.pauseAfter9;
this.input.maxOverTime ??= this.settings.maxOverTime;
this.input.desiredOverTime ??= this.settings.desiredOverTime;
this.settingsProvider.saveSettings(this.input);
this.settings = this.settingsProvider.loadSettings();
this.input = {};
this.input.notifications = this.settings.notifications;
const toast = await this.toasts.create({
message: "Einstellungen gespeichert!",
icon: "save",
duration: 2000,
cssClass: 'toast'
});
await toast.present();
}
}