MOBILE-3833 a11y: Add missing lists
This is still not completely accessible, but it is a good idea to use lists properly in case https://github.com/ionic-team/ionic-framework/issues/19939 gets solvedmain
parent
255f3048a2
commit
5396bb6a71
|
@ -10,33 +10,35 @@
|
||||||
</ion-header>
|
</ion-header>
|
||||||
|
|
||||||
<ion-content>
|
<ion-content>
|
||||||
<ion-item class="ion-text-wrap">
|
<ion-list>
|
||||||
<ion-label><h2>{{ appName }} {{ versionName }}</h2></ion-label>
|
<ion-item class="ion-text-wrap">
|
||||||
</ion-item>
|
<ion-label><h2>{{ appName }} {{ versionName }}</h2></ion-label>
|
||||||
<ion-item button class="ion-text-wrap" (click)="openPage('deviceinfo')" detail="true">
|
</ion-item>
|
||||||
<ion-icon name="fas-mobile" slot="start" aria-hidden="true"></ion-icon>
|
<ion-item button class="ion-text-wrap" (click)="openPage('deviceinfo')" detail="true">
|
||||||
<ion-label>{{ 'core.settings.deviceinfo' | translate }}</ion-label>
|
<ion-icon name="fas-mobile" slot="start" aria-hidden="true"></ion-icon>
|
||||||
</ion-item>
|
<ion-label>{{ 'core.settings.deviceinfo' | translate }}</ion-label>
|
||||||
<ion-item button class="ion-text-wrap" (click)="openPage('licenses')" detail="true">
|
</ion-item>
|
||||||
<ion-icon name="far-copyright" slot="start" aria-hidden="true"></ion-icon>
|
<ion-item button class="ion-text-wrap" (click)="openPage('licenses')" detail="true">
|
||||||
<ion-label>{{ 'core.settings.opensourcelicenses' | translate }}</ion-label>
|
<ion-icon name="far-copyright" slot="start" aria-hidden="true"></ion-icon>
|
||||||
</ion-item>
|
<ion-label>{{ 'core.settings.opensourcelicenses' | translate }}</ion-label>
|
||||||
<ion-item
|
</ion-item>
|
||||||
*ngIf="privacyPolicy"
|
<ion-item
|
||||||
class="ion-text-wrap"
|
*ngIf="privacyPolicy"
|
||||||
button core-link auto-login="no" [href]="privacyPolicy"
|
class="ion-text-wrap"
|
||||||
detail="true" detailIcon="open-outline"
|
button core-link auto-login="no" [href]="privacyPolicy"
|
||||||
>
|
detail="true" detailIcon="open-outline"
|
||||||
<ion-icon name="fas-user-shield" slot="start" aria-hidden="true"></ion-icon>
|
>
|
||||||
<ion-label>{{ 'core.settings.privacypolicy' | translate }}</ion-label>
|
<ion-icon name="fas-user-shield" slot="start" aria-hidden="true"></ion-icon>
|
||||||
</ion-item>
|
<ion-label>{{ 'core.settings.privacypolicy' | translate }}</ion-label>
|
||||||
<ion-item
|
</ion-item>
|
||||||
*ngIf="feedbackFormUrl"
|
<ion-item
|
||||||
class="ion-text-wrap"
|
*ngIf="feedbackFormUrl"
|
||||||
button core-link [href]="feedbackFormUrl"
|
class="ion-text-wrap"
|
||||||
detail="true" detailIcon="open-outline"
|
button core-link [href]="feedbackFormUrl"
|
||||||
>
|
detail="true" detailIcon="open-outline"
|
||||||
<ion-icon name="fas-bullhorn" slot="start" aria-hidden="true"></ion-icon>
|
>
|
||||||
<ion-label>{{ 'core.settings.helpusimprove' | translate }}</ion-label>
|
<ion-icon name="fas-bullhorn" slot="start" aria-hidden="true"></ion-icon>
|
||||||
</ion-item>
|
<ion-label>{{ 'core.settings.helpusimprove' | translate }}</ion-label>
|
||||||
|
</ion-item>
|
||||||
|
</ion-list>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
|
|
@ -15,128 +15,130 @@
|
||||||
</ion-header>
|
</ion-header>
|
||||||
|
|
||||||
<ion-content>
|
<ion-content>
|
||||||
<ion-item (longPress)="copyItemInfo($event)">
|
<ion-list>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.appversion' | translate}}</h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p>{{ deviceInfo.versionName }} ({{ deviceInfo.versionCode }})</p>
|
<h2>{{ 'core.settings.appversion' | translate}}</h2>
|
||||||
</ion-label>
|
<p>{{ deviceInfo.versionName }} ({{ deviceInfo.versionCode }})</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item (longPress)="copyItemInfo($event)">
|
</ion-item>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.compilationinfo' | translate }}</h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p *ngIf="deviceInfo.compilationTime">{{ deviceInfo.compilationTime | coreFormatDate: "LLL Z": false }}</p>
|
<h2>{{ 'core.settings.compilationinfo' | translate }}</h2>
|
||||||
<p *ngIf="deviceInfo.lastCommit">{{ deviceInfo.lastCommit }}</p>
|
<p *ngIf="deviceInfo.compilationTime">{{ deviceInfo.compilationTime | coreFormatDate: "LLL Z": false }}</p>
|
||||||
</ion-label>
|
<p *ngIf="deviceInfo.lastCommit">{{ deviceInfo.lastCommit }}</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item *ngIf="deviceInfo.siteUrl" (longPress)="copyItemInfo($event)">
|
</ion-item>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item *ngIf="deviceInfo.siteUrl" (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.siteinfo' | translate }}<ng-container *ngIf="deviceInfo.isPrefixedUrl"> *</ng-container></h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p><a [href]="deviceInfo.siteUrl" core-link auto-login="yes">{{ deviceInfo.siteUrl }}</a></p>
|
<h2>{{ 'core.settings.siteinfo' | translate }}<ng-container *ngIf="deviceInfo.isPrefixedUrl"> *</ng-container></h2>
|
||||||
<p *ngIf="deviceInfo.siteVersion">{{ deviceInfo.siteVersion }}</p>
|
<p><a [href]="deviceInfo.siteUrl" core-link auto-login="yes">{{ deviceInfo.siteUrl }}</a></p>
|
||||||
<p *ngIf="deviceInfo.siteId">{{ deviceInfo.siteId }}</p>
|
<p *ngIf="deviceInfo.siteVersion">{{ deviceInfo.siteVersion }}</p>
|
||||||
</ion-label>
|
<p *ngIf="deviceInfo.siteId">{{ deviceInfo.siteId }}</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item *ngIf="deviceInfo.fileSystemRoot" (longPress)="copyItemInfo($event)">
|
</ion-item>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item *ngIf="deviceInfo.fileSystemRoot" (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.filesystemroot' | translate }}</h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p><a *ngIf="fsClickable" [href]="deviceInfo.fileSystemRoot" core-link auto-login="no">{{ deviceInfo.fileSystemRoot }}</a></p>
|
<h2>{{ 'core.settings.filesystemroot' | translate }}</h2>
|
||||||
<p *ngIf="!fsClickable">{{ deviceInfo.fileSystemRoot }}</p>
|
<p><a *ngIf="fsClickable" [href]="deviceInfo.fileSystemRoot" core-link auto-login="no">{{ deviceInfo.fileSystemRoot }}</a></p>
|
||||||
</ion-label>
|
<p *ngIf="!fsClickable">{{ deviceInfo.fileSystemRoot }}</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item *ngIf="deviceInfo.userAgent" (longPress)="copyItemInfo($event)">
|
</ion-item>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item *ngIf="deviceInfo.userAgent" (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.navigatoruseragent' | translate }}</h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p>{{ deviceInfo.userAgent }}</p>
|
<h2>{{ 'core.settings.navigatoruseragent' | translate }}</h2>
|
||||||
</ion-label>
|
<p>{{ deviceInfo.userAgent }}</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item *ngIf="deviceInfo.browserLanguage" (longPress)="copyItemInfo($event)">
|
</ion-item>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item *ngIf="deviceInfo.browserLanguage" (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.navigatorlanguage' | translate }}</h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p>{{ deviceInfo.browserLanguage }}</p>
|
<h2>{{ 'core.settings.navigatorlanguage' | translate }}</h2>
|
||||||
</ion-label>
|
<p>{{ deviceInfo.browserLanguage }}</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item *ngIf="deviceInfo.currentLanguage" (longPress)="copyItemInfo($event)">
|
</ion-item>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item *ngIf="deviceInfo.currentLanguage" (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.currentlanguage' | translate }}</h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p>{{ currentLangName }} ({{ deviceInfo.currentLanguage }})</p>
|
<h2>{{ 'core.settings.currentlanguage' | translate }}</h2>
|
||||||
</ion-label>
|
<p>{{ currentLangName }} ({{ deviceInfo.currentLanguage }})</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item *ngIf="deviceInfo.locationHref" (longPress)="copyItemInfo($event)">
|
</ion-item>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item *ngIf="deviceInfo.locationHref" (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.locationhref' | translate }}</h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p>{{ deviceInfo.locationHref }}</p>
|
<h2>{{ 'core.settings.locationhref' | translate }}</h2>
|
||||||
</ion-label>
|
<p>{{ deviceInfo.locationHref }}</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item *ngIf="deviceInfo.deviceType" (longPress)="copyItemInfo($event)">
|
</ion-item>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item *ngIf="deviceInfo.deviceType" (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.displayformat' | translate }}</h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p>{{ 'core.' + deviceInfo.deviceType | translate }}</p>
|
<h2>{{ 'core.settings.displayformat' | translate }}</h2>
|
||||||
</ion-label>
|
<p>{{ 'core.' + deviceInfo.deviceType | translate }}</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item *ngIf="deviceInfo.deviceOs && deviceOsTranslated" (longPress)="copyItemInfo($event)">
|
</ion-item>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item *ngIf="deviceInfo.deviceOs && deviceOsTranslated" (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.deviceos' | translate}}</h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p>{{ deviceOsTranslated }}</p>
|
<h2>{{ 'core.settings.deviceos' | translate}}</h2>
|
||||||
</ion-label>
|
<p>{{ deviceOsTranslated }}</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item *ngIf="deviceInfo.screen" (longPress)="copyItemInfo($event)">
|
</ion-item>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item *ngIf="deviceInfo.screen" (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.screen' | translate }}</h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p>{{ deviceInfo.screen }}</p>
|
<h2>{{ 'core.settings.screen' | translate }}</h2>
|
||||||
</ion-label>
|
<p>{{ deviceInfo.screen }}</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item (longPress)="copyItemInfo($event)">
|
</ion-item>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.networkstatus' | translate}}</h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p>{{ 'core.' + deviceInfo.networkStatus | translate }}</p>
|
<h2>{{ 'core.settings.networkstatus' | translate}}</h2>
|
||||||
</ion-label>
|
<p>{{ 'core.' + deviceInfo.networkStatus | translate }}</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item (longPress)="copyItemInfo($event)">
|
</ion-item>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.wificonnection' | translate}}</h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p>{{ 'core.' + deviceInfo.wifiConnection | translate }}</p>
|
<h2>{{ 'core.settings.wificonnection' | translate}}</h2>
|
||||||
</ion-label>
|
<p>{{ 'core.' + deviceInfo.wifiConnection | translate }}</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item *ngIf="deviceInfo.cordovaVersion" (longPress)="copyItemInfo($event)">
|
</ion-item>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item *ngIf="deviceInfo.cordovaVersion" (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.cordovaversion' | translate }}</h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p>{{ deviceInfo.cordovaVersion }}</p>
|
<h2>{{ 'core.settings.cordovaversion' | translate }}</h2>
|
||||||
</ion-label>
|
<p>{{ deviceInfo.cordovaVersion }}</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item *ngIf="deviceInfo.platform" (longPress)="copyItemInfo($event)">
|
</ion-item>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item *ngIf="deviceInfo.platform" (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.cordovadeviceplatform' | translate }}</h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p>{{ deviceInfo.platform }}</p>
|
<h2>{{ 'core.settings.cordovadeviceplatform' | translate }}</h2>
|
||||||
</ion-label>
|
<p>{{ deviceInfo.platform }}</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item *ngIf="deviceInfo.osVersion" (longPress)="copyItemInfo($event)">
|
</ion-item>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item *ngIf="deviceInfo.osVersion" (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.cordovadeviceosversion' | translate }}</h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p>{{ deviceInfo.osVersion }}</p>
|
<h2>{{ 'core.settings.cordovadeviceosversion' | translate }}</h2>
|
||||||
</ion-label>
|
<p>{{ deviceInfo.osVersion }}</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item *ngIf="deviceInfo.model" (longPress)="copyItemInfo($event)">
|
</ion-item>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item *ngIf="deviceInfo.model" (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.cordovadevicemodel' | translate}}</h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p>{{ deviceInfo.model }}</p>
|
<h2>{{ 'core.settings.cordovadevicemodel' | translate}}</h2>
|
||||||
</ion-label>
|
<p>{{ deviceInfo.model }}</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item *ngIf="deviceInfo.uuid" (longPress)="copyItemInfo($event)">
|
</ion-item>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item *ngIf="deviceInfo.uuid" (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.cordovadeviceuuid' | translate}}</h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p>{{ deviceInfo.uuid }}</p>
|
<h2>{{ 'core.settings.cordovadeviceuuid' | translate}}</h2>
|
||||||
</ion-label>
|
<p>{{ deviceInfo.uuid }}</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item *ngIf="deviceInfo.pushId" (longPress)="copyItemInfo($event)">
|
</ion-item>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item *ngIf="deviceInfo.pushId" (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.pushid' | translate }}</h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p>{{ deviceInfo.pushId }}</p>
|
<h2>{{ 'core.settings.pushid' | translate }}</h2>
|
||||||
</ion-label>
|
<p>{{ deviceInfo.pushId }}</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item (longPress)="copyItemInfo($event)">
|
</ion-item>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item (longPress)="copyItemInfo($event)">
|
||||||
<h2>{{ 'core.settings.localnotifavailable' | translate }}</h2>
|
<ion-label class="ion-text-wrap">
|
||||||
<p>{{ 'core.' + deviceInfo.localNotifAvailable | translate }}</p>
|
<h2>{{ 'core.settings.localnotifavailable' | translate }}</h2>
|
||||||
</ion-label>
|
<p>{{ 'core.' + deviceInfo.localNotifAvailable | translate }}</p>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
|
</ion-item>
|
||||||
|
</ion-list>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
|
|
@ -8,73 +8,75 @@
|
||||||
</ion-toolbar>
|
</ion-toolbar>
|
||||||
</ion-header>
|
</ion-header>
|
||||||
<ion-content>
|
<ion-content>
|
||||||
<ion-item class="ion-text-wrap">
|
<ion-list>
|
||||||
<ion-label>
|
<ion-item class="ion-text-wrap">
|
||||||
<h2>{{ 'core.settings.language' | translate }}</h2>
|
<ion-label>
|
||||||
</ion-label>
|
<h2>{{ 'core.settings.language' | translate }}</h2>
|
||||||
<ion-select [(ngModel)]="selectedLanguage" (ionChange)="languageChanged()" interface="action-sheet"
|
</ion-label>
|
||||||
[interfaceOptions]="{header: 'core.settings.language' | translate}">
|
<ion-select [(ngModel)]="selectedLanguage" (ionChange)="languageChanged()" interface="action-sheet"
|
||||||
<ion-select-option *ngFor="let entry of languages" [value]="entry.code">{{ entry.name }}</ion-select-option>
|
[interfaceOptions]="{header: 'core.settings.language' | translate}">
|
||||||
</ion-select>
|
<ion-select-option *ngFor="let entry of languages" [value]="entry.code">{{ entry.name }}</ion-select-option>
|
||||||
</ion-item>
|
</ion-select>
|
||||||
<ion-item class="ion-text-wrap core-settings-general-font-size item-interactive">
|
</ion-item>
|
||||||
<ion-label>
|
<ion-item class="ion-text-wrap core-settings-general-font-size item-interactive">
|
||||||
<h2>{{ 'core.settings.fontsize' | translate }}</h2>
|
<ion-label>
|
||||||
</ion-label>
|
<h2>{{ 'core.settings.fontsize' | translate }}</h2>
|
||||||
<ion-segment [(ngModel)]="selectedZoomLevel" (ionChange)="zoomLevelChanged()" color="primary">
|
</ion-label>
|
||||||
<ion-segment-button *ngFor="let zoomLevel of zoomLevels" [value]="zoomLevel.value"
|
<ion-segment [(ngModel)]="selectedZoomLevel" (ionChange)="zoomLevelChanged()" color="primary">
|
||||||
[ngStyle]="{'font-size.px': zoomLevel.style}">
|
<ion-segment-button *ngFor="let zoomLevel of zoomLevels" [value]="zoomLevel.value"
|
||||||
<ion-label>
|
[ngStyle]="{'font-size.px': zoomLevel.style}">
|
||||||
{{ 'core.settings.fontsizecharacter' | translate }}
|
<ion-label>
|
||||||
<!-- Empty element styled with the largest font size, so all buttons share a common baseline. -->
|
{{ 'core.settings.fontsizecharacter' | translate }}
|
||||||
<span [ngStyle]="{'font-size.px': zoomLevels[zoomLevels.length - 1].style}"></span>
|
<!-- Empty element styled with the largest font size, so all buttons share a common baseline. -->
|
||||||
</ion-label>
|
<span [ngStyle]="{'font-size.px': zoomLevels[zoomLevels.length - 1].style}"></span>
|
||||||
</ion-segment-button>
|
</ion-label>
|
||||||
</ion-segment>
|
</ion-segment-button>
|
||||||
</ion-item>
|
</ion-segment>
|
||||||
<ion-item class="ion-text-wrap core-settings-general-color-scheme" *ngIf="colorSchemes.length > 0"
|
</ion-item>
|
||||||
[lines]="selectedScheme=='system' && isAndroid ? 'none' : 'inset'">
|
<ion-item class="ion-text-wrap core-settings-general-color-scheme" *ngIf="colorSchemes.length > 0"
|
||||||
<ion-label>
|
[lines]="selectedScheme=='system' && isAndroid ? 'none' : 'inset'">
|
||||||
<h2>{{ 'core.settings.colorscheme' | translate }}</h2>
|
<ion-label>
|
||||||
<p *ngIf="colorSchemeDisabled" class="text-danger">{{ 'core.settings.forcedsetting' | translate }}</p>
|
<h2>{{ 'core.settings.colorscheme' | translate }}</h2>
|
||||||
</ion-label>
|
<p *ngIf="colorSchemeDisabled" class="text-danger">{{ 'core.settings.forcedsetting' | translate }}</p>
|
||||||
<ion-select [(ngModel)]="selectedScheme" (ionChange)="colorSchemeChanged()" interface="action-sheet"
|
</ion-label>
|
||||||
[disabled]="colorSchemeDisabled" [interfaceOptions]="{header: 'core.settings.colorscheme' | translate}">
|
<ion-select [(ngModel)]="selectedScheme" (ionChange)="colorSchemeChanged()" interface="action-sheet"
|
||||||
<ion-select-option *ngFor="let scheme of colorSchemes" [value]="scheme">
|
[disabled]="colorSchemeDisabled" [interfaceOptions]="{header: 'core.settings.colorscheme' | translate}">
|
||||||
{{ 'core.settings.colorscheme-' + scheme | translate }}</ion-select-option>
|
<ion-select-option *ngFor="let scheme of colorSchemes" [value]="scheme">
|
||||||
</ion-select>
|
{{ 'core.settings.colorscheme-' + scheme | translate }}</ion-select-option>
|
||||||
</ion-item>
|
</ion-select>
|
||||||
<ion-item text-wrap *ngIf="colorSchemes.length > 0 && selectedScheme=='system' && isAndroid">
|
</ion-item>
|
||||||
<ion-label><p>{{ 'core.settings.colorscheme-system-notice' | translate }}</p></ion-label>
|
<ion-item text-wrap *ngIf="colorSchemes.length > 0 && selectedScheme=='system' && isAndroid">
|
||||||
</ion-item>
|
<ion-label><p>{{ 'core.settings.colorscheme-system-notice' | translate }}</p></ion-label>
|
||||||
<ion-item class="ion-text-wrap">
|
</ion-item>
|
||||||
<ion-label>
|
<ion-item class="ion-text-wrap">
|
||||||
<h2>{{ 'core.settings.enablerichtexteditor' | translate }}</h2>
|
<ion-label>
|
||||||
<p>{{ 'core.settings.enablerichtexteditordescription' | translate }}</p>
|
<h2>{{ 'core.settings.enablerichtexteditor' | translate }}</h2>
|
||||||
</ion-label>
|
<p>{{ 'core.settings.enablerichtexteditordescription' | translate }}</p>
|
||||||
<ion-toggle [(ngModel)]="richTextEditor" (ionChange)="richTextEditorChanged()"></ion-toggle>
|
</ion-label>
|
||||||
</ion-item>
|
<ion-toggle [(ngModel)]="richTextEditor" (ionChange)="richTextEditorChanged()"></ion-toggle>
|
||||||
<ion-item class="ion-text-wrap" *ngIf="displayIframeHelp">
|
</ion-item>
|
||||||
<ion-label>
|
<ion-item class="ion-text-wrap" *ngIf="displayIframeHelp">
|
||||||
<h2>{{ 'core.settings.ioscookies' | translate }}</h2>
|
<ion-label>
|
||||||
<p>{{ 'core.settings.ioscookiesdescription' | translate }}</p>
|
<h2>{{ 'core.settings.ioscookies' | translate }}</h2>
|
||||||
<ion-button expand="block" (click)="openNativeSettings()">
|
<p>{{ 'core.settings.ioscookiesdescription' | translate }}</p>
|
||||||
{{ 'core.opensettings' | translate }}
|
<ion-button expand="block" (click)="openNativeSettings()">
|
||||||
</ion-button>
|
{{ 'core.opensettings' | translate }}
|
||||||
</ion-label>
|
</ion-button>
|
||||||
</ion-item>
|
</ion-label>
|
||||||
<ion-item class="ion-text-wrap">
|
</ion-item>
|
||||||
<ion-label>
|
<ion-item class="ion-text-wrap">
|
||||||
<h2>{{ 'core.settings.debugdisplay' | translate }}</h2>
|
<ion-label>
|
||||||
<p>{{ 'core.settings.debugdisplaydescription' | translate }}</p>
|
<h2>{{ 'core.settings.debugdisplay' | translate }}</h2>
|
||||||
</ion-label>
|
<p>{{ 'core.settings.debugdisplaydescription' | translate }}</p>
|
||||||
<ion-toggle [(ngModel)]="debugDisplay" (ionChange)="debugDisplayChanged()"></ion-toggle>
|
</ion-label>
|
||||||
</ion-item>
|
<ion-toggle [(ngModel)]="debugDisplay" (ionChange)="debugDisplayChanged()"></ion-toggle>
|
||||||
<ion-item class="ion-text-wrap" *ngIf="analyticsSupported">
|
</ion-item>
|
||||||
<ion-label>
|
<ion-item class="ion-text-wrap" *ngIf="analyticsSupported">
|
||||||
<h2>{{ 'core.settings.enablefirebaseanalytics' | translate }}</h2>
|
<ion-label>
|
||||||
<p>{{ 'core.settings.enablefirebaseanalyticsdescription' | translate }}</p>
|
<h2>{{ 'core.settings.enablefirebaseanalytics' | translate }}</h2>
|
||||||
</ion-label>
|
<p>{{ 'core.settings.enablefirebaseanalyticsdescription' | translate }}</p>
|
||||||
<ion-toggle [(ngModel)]="analyticsEnabled" (ionChange)="analyticsEnabledChanged()"></ion-toggle>
|
</ion-label>
|
||||||
</ion-item>
|
<ion-toggle [(ngModel)]="analyticsEnabled" (ionChange)="analyticsEnabledChanged()"></ion-toggle>
|
||||||
|
</ion-item>
|
||||||
|
</ion-list>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
|
|
@ -9,33 +9,34 @@
|
||||||
</ion-header>
|
</ion-header>
|
||||||
<ion-content>
|
<ion-content>
|
||||||
<core-loading [hideUntil]="loaded">
|
<core-loading [hideUntil]="loaded">
|
||||||
<ion-item button *ngIf="error" class="ion-text-wrap" [href]="licensesUrl" core-link auto-login="no">
|
<ion-list>
|
||||||
<ion-label>
|
<ion-item button *ngIf="error" class="ion-text-wrap" [href]="licensesUrl" core-link auto-login="no">
|
||||||
{{ 'core.settings.opensourcelicenses' | translate }}
|
|
||||||
</ion-label>
|
|
||||||
<ion-button [href]="licensesUrl" target="_blank" fill="clear" slot="end" core-link auto-login="no">
|
|
||||||
{{ 'core.view' | translate }}</ion-button>
|
|
||||||
</ion-item>
|
|
||||||
|
|
||||||
<ng-container *ngIf="!error">
|
|
||||||
<ion-item *ngFor="let license of licenses" class="ion-text-wrap">
|
|
||||||
<ion-label>
|
<ion-label>
|
||||||
<p class="item-heading">
|
{{ 'core.settings.opensourcelicenses' | translate }}
|
||||||
<a *ngIf="license.repository" [href]="license.repository" core-link
|
|
||||||
auto-login="no">{{ license.name }}</a>
|
|
||||||
<ng-container *ngIf="!license.repository">{{ license.name }}</ng-container> - {{ license.version }}
|
|
||||||
</p>
|
|
||||||
<p class="item-heading" *ngIf="license.publisher">
|
|
||||||
{{ 'core.settings.publisher' | translate }}{{ 'core.labelsep' | translate }} {{ license.publisher }}
|
|
||||||
</p>
|
|
||||||
<p>{{ 'core.settings.license' | translate }}{{ 'core.labelsep' | translate }} {{ license.licenses }}</p>
|
|
||||||
<p><a *ngIf="license.url" [href]="license.url" core-link auto-login="no">{{ license.url }}</a></p>
|
|
||||||
<p><a *ngIf="license.email" [href]="'mailto:' + license.email" core-link
|
|
||||||
auto-login="no">{{ license.email }}</a></p>
|
|
||||||
</ion-label>
|
</ion-label>
|
||||||
<ion-button *ngIf="license.licenseUrl" [href]="license.licenseUrl" target="_blank"
|
<ion-button [href]="licensesUrl" target="_blank" fill="clear" slot="end" core-link auto-login="no">
|
||||||
fill="clear" slot="end" core-link auto-login="no">{{ 'core.view' | translate }}</ion-button>
|
{{ 'core.view' | translate }}</ion-button>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
</ng-container>
|
<ng-container *ngIf="!error">
|
||||||
|
<ion-item *ngFor="let license of licenses" class="ion-text-wrap">
|
||||||
|
<ion-label>
|
||||||
|
<p class="item-heading">
|
||||||
|
<a *ngIf="license.repository" [href]="license.repository" core-link
|
||||||
|
auto-login="no">{{ license.name }}</a>
|
||||||
|
<ng-container *ngIf="!license.repository">{{ license.name }}</ng-container> - {{ license.version }}
|
||||||
|
</p>
|
||||||
|
<p class="item-heading" *ngIf="license.publisher">
|
||||||
|
{{ 'core.settings.publisher' | translate }}{{ 'core.labelsep' | translate }} {{ license.publisher }}
|
||||||
|
</p>
|
||||||
|
<p>{{ 'core.settings.license' | translate }}{{ 'core.labelsep' | translate }} {{ license.licenses }}</p>
|
||||||
|
<p><a *ngIf="license.url" [href]="license.url" core-link auto-login="no">{{ license.url }}</a></p>
|
||||||
|
<p><a *ngIf="license.email" [href]="'mailto:' + license.email" core-link
|
||||||
|
auto-login="no">{{ license.email }}</a></p>
|
||||||
|
</ion-label>
|
||||||
|
<ion-button *ngIf="license.licenseUrl" [href]="license.licenseUrl" target="_blank"
|
||||||
|
fill="clear" slot="end" core-link auto-login="no">{{ 'core.view' | translate }}</ion-button>
|
||||||
|
</ion-item>
|
||||||
|
</ng-container>
|
||||||
|
</ion-list>
|
||||||
</core-loading>
|
</core-loading>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
|
|
@ -18,30 +18,32 @@
|
||||||
<ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
|
<ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
|
||||||
</ion-refresher>
|
</ion-refresher>
|
||||||
<core-loading [hideUntil]="loaded">
|
<core-loading [hideUntil]="loaded">
|
||||||
<ion-item *ngFor="let site of sites" [attr.aria-current]="site.id == currentSiteId ? 'page' : 'false'">
|
<ion-list>
|
||||||
<ion-label class="ion-text-wrap">
|
<ion-item *ngFor="let site of sites" [attr.aria-current]="site.id == currentSiteId ? 'page' : 'false'">
|
||||||
<p class="item-heading">
|
<ion-label class="ion-text-wrap">
|
||||||
<core-format-text [text]="site.siteName" clean="true" [siteId]="site.id"></core-format-text>
|
<p class="item-heading">
|
||||||
|
<core-format-text [text]="site.siteName" clean="true" [siteId]="site.id"></core-format-text>
|
||||||
|
</p>
|
||||||
|
<p class="ion-text-wrap">{{ site.fullName }}</p>
|
||||||
|
<p>{{ site.siteUrl }}</p>
|
||||||
|
</ion-label>
|
||||||
|
<p *ngIf="site.spaceUsage !== undefined" slot="end">
|
||||||
|
{{ site.spaceUsage | coreBytesToSize }}
|
||||||
</p>
|
</p>
|
||||||
<p class="ion-text-wrap">{{ site.fullName }}</p>
|
<ion-button fill="clear" color="danger" slot="end" (click)="deleteSiteStorage(site)"
|
||||||
<p>{{ site.siteUrl }}</p>
|
[hidden]="site.spaceUsage! + site.cacheEntries! <= 0"
|
||||||
</ion-label>
|
[attr.aria-label]="'core.settings.deletesitefilestitle' | translate">
|
||||||
<p *ngIf="site.spaceUsage !== undefined" slot="end">
|
<ion-icon name="fas-trash" slot="icon-only" aria-hidden="true"></ion-icon>
|
||||||
{{ site.spaceUsage | coreBytesToSize }}
|
</ion-button>
|
||||||
</p>
|
</ion-item>
|
||||||
<ion-button fill="clear" color="danger" slot="end" (click)="deleteSiteStorage(site)"
|
<ion-item-divider>
|
||||||
[hidden]="site.spaceUsage! + site.cacheEntries! <= 0"
|
<ion-label>
|
||||||
[attr.aria-label]="'core.settings.deletesitefilestitle' | translate">
|
<h2>{{ 'core.settings.total' | translate }}</h2>
|
||||||
<ion-icon name="fas-trash" slot="icon-only" aria-hidden="true"></ion-icon>
|
</ion-label>
|
||||||
</ion-button>
|
<p slot="end" class="ion-margin-end">
|
||||||
</ion-item>
|
{{ totals.spaceUsage | coreBytesToSize }}
|
||||||
<ion-item-divider>
|
</p>
|
||||||
<ion-label>
|
</ion-item-divider>
|
||||||
<h2>{{ 'core.settings.total' | translate }}</h2>
|
</ion-list>
|
||||||
</ion-label>
|
|
||||||
<p slot="end" class="ion-margin-end">
|
|
||||||
{{ totals.spaceUsage | coreBytesToSize }}
|
|
||||||
</p>
|
|
||||||
</ion-item-divider>
|
|
||||||
</core-loading>
|
</core-loading>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
|
|
@ -15,35 +15,37 @@
|
||||||
</ion-header>
|
</ion-header>
|
||||||
<ion-content>
|
<ion-content>
|
||||||
<core-loading [hideUntil]="sitesLoaded">
|
<core-loading [hideUntil]="sitesLoaded">
|
||||||
<ion-item-divider>
|
<ion-list>
|
||||||
<ion-label>
|
<ion-item-divider>
|
||||||
<h2>{{ 'core.settings.syncsettings' | translate }}</h2>
|
<ion-label>
|
||||||
</ion-label>
|
<h2>{{ 'core.settings.syncsettings' | translate }}</h2>
|
||||||
</ion-item-divider>
|
</ion-label>
|
||||||
<ion-item class="ion-text-wrap">
|
</ion-item-divider>
|
||||||
<ion-label>{{ 'core.settings.enablesyncwifi' | translate }}</ion-label>
|
<ion-item class="ion-text-wrap">
|
||||||
<ion-toggle slot="end" [(ngModel)]="syncOnlyOnWifi" (ngModelChange)="syncOnlyOnWifiChanged()">
|
<ion-label>{{ 'core.settings.enablesyncwifi' | translate }}</ion-label>
|
||||||
</ion-toggle>
|
<ion-toggle slot="end" [(ngModel)]="syncOnlyOnWifi" (ngModelChange)="syncOnlyOnWifiChanged()">
|
||||||
</ion-item>
|
</ion-toggle>
|
||||||
<ion-item-divider>
|
</ion-item>
|
||||||
<ion-label>
|
<ion-item-divider>
|
||||||
<h2>{{ 'core.settings.sites' | translate }}</h2>
|
<ion-label>
|
||||||
</ion-label>
|
<h2>{{ 'core.settings.sites' | translate }}</h2>
|
||||||
</ion-item-divider>
|
</ion-label>
|
||||||
<ion-item *ngFor="let site of sites" [attr.aria-current]="site.id == currentSiteId ? 'page' : 'false'" class="ion-text-wrap">
|
</ion-item-divider>
|
||||||
<ion-label>
|
<ion-item *ngFor="let site of sites" [attr.aria-current]="site.id == currentSiteId ? 'page' : 'false'" class="ion-text-wrap">
|
||||||
<p class="item-heading">
|
<ion-label>
|
||||||
<core-format-text [text]="site.siteName" clean="true" [siteId]="site.id"></core-format-text>
|
<p class="item-heading">
|
||||||
</p>
|
<core-format-text [text]="site.siteName" clean="true" [siteId]="site.id"></core-format-text>
|
||||||
<p>{{ site.fullName }}</p>
|
</p>
|
||||||
<p>{{ site.siteUrl }}</p>
|
<p>{{ site.fullName }}</p>
|
||||||
</ion-label>
|
<p>{{ site.siteUrl }}</p>
|
||||||
<core-button-with-spinner [loading]="isSynchronizing(site.id)" slot="end">
|
</ion-label>
|
||||||
<ion-button fill="clear" (click)="synchronize(site.id)"
|
<core-button-with-spinner [loading]="isSynchronizing(site.id)" slot="end">
|
||||||
[title]="site.siteName" [attr.aria-label]="'core.settings.synchronizenow' | translate">
|
<ion-button fill="clear" (click)="synchronize(site.id)"
|
||||||
<ion-icon name="fas-sync-alt" slot="icon-only" aria-hidden="true"></ion-icon>
|
[title]="site.siteName" [attr.aria-label]="'core.settings.synchronizenow' | translate">
|
||||||
</ion-button>
|
<ion-icon name="fas-sync-alt" slot="icon-only" aria-hidden="true"></ion-icon>
|
||||||
</core-button-with-spinner>
|
</ion-button>
|
||||||
</ion-item>
|
</core-button-with-spinner>
|
||||||
|
</ion-item>
|
||||||
|
</ion-list>
|
||||||
</core-loading>
|
</core-loading>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
|
Loading…
Reference in New Issue