Files
iptvnator/apps/web/src/app/settings/settings.component.html
T
2026-05-01 20:16:32 +02:00

124 lines
4.4 KiB
HTML

@if (isDialog) {
<h2 mat-dialog-title>{{ 'SETTINGS.GENERAL' | translate }}</h2>
}
<div
class="settings-container"
data-test-id="settings-container"
[class.dialog-mode]="isDialog"
appSettingsSectionScroll
>
<form
[formGroup]="settingsForm"
(ngSubmit)="onSubmit()"
class="settings-layout"
novalidate
>
@if (!isDialog) {
<header
class="settings-page-header"
data-test-id="settings-page-header"
>
<div class="settings-page-header__text">
<h1 data-test-id="settings-page-title">
{{ 'SETTINGS.TITLE' | translate }}
</h1>
<p>{{ 'SETTINGS.GENERAL_SUBTITLE' | translate }}</p>
</div>
</header>
}
<div class="settings-content">
<app-settings-general-section
[form]="settingsForm"
[activeSection]="activeSection()"
[languageEnum]="languageEnum"
[themeOptions]="themeOptions"
[coverSizeOptions]="coverSizeOptions"
[startupBehaviorOptions]="startupBehaviorOptions"
(selectTheme)="selectTheme($event)"
(selectCoverSize)="selectCoverSize($event)"
/>
<app-settings-playback-section
[form]="settingsForm"
[activeSection]="activeSection()"
[players]="players()"
[streamFormatEnum]="streamFormatEnum"
[isDesktop]="isDesktop"
/>
@if (isDesktop) {
<app-settings-epg-section
[form]="settingsForm"
[activeSection]="activeSection()"
[epgUrl]="epgUrl"
[isClearingEpgData]="isClearingEpgData()"
(refreshEpg)="refreshEpg($event)"
(removeEpgSource)="removeEpgSource($event)"
(addEpgSource)="addEpgSource()"
(refreshAllEpg)="refreshAllEpg()"
(clearEpgData)="clearEpgData()"
/>
<app-settings-remote-control-section
[form]="settingsForm"
[activeSection]="activeSection()"
[localIpAddresses]="localIpAddresses()"
[visibleQrCodeIp]="visibleQrCodeIp()"
(toggleQrCode)="toggleQrCode($event)"
/>
}
<app-settings-backup-section
[activeSection]="activeSection()"
[isPwa]="isPwa"
[isRemovingAllPlaylists]="isRemovingAllPlaylists()"
[isExportingData]="isExportingData()"
(importData)="importData()"
(exportData)="exportData()"
/>
<app-settings-reset-section
[activeSection]="activeSection()"
[isRemovingAllPlaylists]="isRemovingAllPlaylists()"
[canRemoveAllPlaylists]="canRemoveAllPlaylists()"
[playlistDeleteSummary]="playlistDeleteSummary()"
[removeAllProgressLabel]="removeAllProgressLabel()"
(removeAll)="removeAll()"
/>
<app-settings-about-section
[activeSection]="activeSection()"
[isDesktop]="isDesktop"
[version]="version"
[updateMessage]="updateMessage"
/>
<footer class="action-bar" data-test-id="settings-action-bar">
@if (isDialog) {
<button
mat-button
type="button"
(click)="backToHome()"
data-test-id="back-to-home"
>
<mat-icon>close</mat-icon>
{{ 'CLOSE' | translate }}
</button>
}
<button
mat-flat-button
type="submit"
class="settings-save-button"
[disabled]="settingsForm.pristine || !settingsForm.valid"
data-test-id="save-settings"
>
<mat-icon>save</mat-icon>
{{ 'SETTINGS.SAVE_CHANGES' | translate }}
</button>
</footer>
</div>
</form>
</div>