Compare commits
2 Commits
2fe2b11659
...
dedc8b258a
Author | SHA1 | Date | |
---|---|---|---|
dedc8b258a | |||
748421580a |
22
src/pages/setup/summary/summary.component.html
Normal file
22
src/pages/setup/summary/summary.component.html
Normal file
@ -0,0 +1,22 @@
|
||||
<h1>Настройка завершена</h1>
|
||||
<hr/>
|
||||
<p>
|
||||
Поздравляем! Вы успешно завершили настройку системы.
|
||||
Ваша база данных, кэширование и другие важные параметры были настроены.
|
||||
Вы можете начать использовать программу прямо сейчас.
|
||||
</p>
|
||||
|
||||
<h4 style="margin-bottom: -5px;">Что дальше?</h4>
|
||||
<p class="mat-body-2 secondary">
|
||||
Теперь, когда основные настройки завершены, вы можете начать использовать систему с уверенностью, что все работает правильно.
|
||||
</p>
|
||||
|
||||
<h4 style="margin-bottom: -5px;">Изменение настроек</h4>
|
||||
<p class="mat-body-2 secondary">
|
||||
Помните, что вы всегда можете изменить некоторые настройки позже через интерфейс программы.
|
||||
Для изменения настроек перейдите в раздел настроек программы, который доступен в меню пользователя.
|
||||
</p>
|
||||
|
||||
<p class="mat-h3" style="color: red;font-weight: lighter;">
|
||||
Для того, чтобы настройки были применены нажмите кнопку "Завершить" и перезагрузите приложение
|
||||
</p>
|
26
src/pages/setup/summary/summary.component.ts
Normal file
26
src/pages/setup/summary/summary.component.ts
Normal file
@ -0,0 +1,26 @@
|
||||
import {Component} from '@angular/core';
|
||||
import {MatButton} from "@angular/material/button";
|
||||
import {NavigationService} from "@service/navigation.service";
|
||||
import {MatFormFieldModule} from "@angular/material/form-field";
|
||||
import {MatInput} from "@angular/material/input";
|
||||
import SetupService from "@api/v1/setup.service";
|
||||
|
||||
@Component({
|
||||
selector: 'app-summary',
|
||||
standalone: true,
|
||||
imports: [
|
||||
MatButton,
|
||||
MatFormFieldModule,
|
||||
MatInput
|
||||
],
|
||||
templateUrl: './summary.component.html'
|
||||
})
|
||||
|
||||
export class SummaryComponent {
|
||||
constructor(private navigationService: NavigationService, private api: SetupService) {
|
||||
this.navigationService.nextButtonAction = () => {
|
||||
return this.api.submit();
|
||||
};
|
||||
this.navigationService.setNextButtonState(true);
|
||||
}
|
||||
}
|
44
src/shared/structs/TimeOnly.ts
Normal file
44
src/shared/structs/TimeOnly.ts
Normal file
@ -0,0 +1,44 @@
|
||||
export class TimeOnly {
|
||||
|
||||
private readonly _ticks: number;
|
||||
|
||||
constructor(hour: number, minute: number, second: number);
|
||||
constructor(time: Date);
|
||||
constructor(time: string);
|
||||
constructor(hourOrTime: number | Date | string, minute?: number, second?: number) {
|
||||
if (hourOrTime instanceof Date) {
|
||||
this._ticks = hourOrTime.getTime();
|
||||
} else if (typeof hourOrTime === 'number' && minute !== undefined && second !== undefined) {
|
||||
this._ticks = new Date(2000, 0, 1, hourOrTime, minute, second, 0).getTime()
|
||||
} else if (typeof hourOrTime === 'string') {
|
||||
const [h, m, s] = hourOrTime.split(':').map(Number);
|
||||
this._ticks = new Date(2000, 0, 1, h, m, s, 0).getTime()
|
||||
} else {
|
||||
throw new Error('Invalid constructor arguments');
|
||||
}
|
||||
}
|
||||
|
||||
get minute(): number {
|
||||
return new Date(this._ticks).getMinutes();
|
||||
}
|
||||
|
||||
get hour(): number {
|
||||
return new Date(this._ticks).getHours();
|
||||
}
|
||||
|
||||
get second(): number {
|
||||
return new Date(this._ticks).getSeconds();
|
||||
}
|
||||
|
||||
get localTime(): string {
|
||||
return new Date(this._ticks).toLocaleDateString();
|
||||
}
|
||||
|
||||
toTimeWithoutSeconds(): string {
|
||||
return `${String(this.hour).padStart(2, '0')}:${String(this.minute).padStart(2, '0')}`
|
||||
}
|
||||
|
||||
toString(): string {
|
||||
return `${String(this.hour).padStart(2, '0')}:${String(this.minute).padStart(2, '0')}-${String(this.second).padStart(2, '0')}`;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user