mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2026-03-12 01:32:12 +00:00
refactor: replace TSLint with ESLint
This commit is contained in:
committed by
Jovan Krunić
parent
67fb4a43c9
commit
d696215d08
@@ -31,7 +31,6 @@ import {SettingsProvider} from '../settings.provider';
|
||||
templateUrl: 'settings-item.html',
|
||||
})
|
||||
export class SettingsItemComponent {
|
||||
|
||||
/**
|
||||
* If set the setting will be shown as compact view
|
||||
*/
|
||||
@@ -41,6 +40,7 @@ export class SettingsItemComponent {
|
||||
* Flag for workaround for selected 'select option' not updating translation
|
||||
*/
|
||||
isVisible = true;
|
||||
|
||||
/**
|
||||
* The setting to handle
|
||||
*/
|
||||
@@ -52,13 +52,15 @@ export class SettingsItemComponent {
|
||||
* @param translateService TranslateService
|
||||
* @param settingsProvider SettingProvider
|
||||
*/
|
||||
constructor(private readonly alertCtrl: AlertController,
|
||||
private readonly translateService: TranslateService,
|
||||
private readonly settingsProvider: SettingsProvider) {
|
||||
constructor(
|
||||
private readonly alertCtrl: AlertController,
|
||||
private readonly translateService: TranslateService,
|
||||
private readonly settingsProvider: SettingsProvider,
|
||||
) {
|
||||
translateService.onLangChange.subscribe((_event: LangChangeEvent) => {
|
||||
this.isVisible = false;
|
||||
// TODO: Issue #53 check workaround for selected 'select option' not updating translation
|
||||
setTimeout(() => this.isVisible = true);
|
||||
setTimeout(() => (this.isVisible = true));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -81,8 +83,10 @@ export class SettingsItemComponent {
|
||||
* Handles value changes of the setting
|
||||
*/
|
||||
async settingChanged(): Promise<void> {
|
||||
if (typeof this.setting.value !== 'undefined'
|
||||
&& SettingsProvider.validateValue(this.setting, this.setting.value)) {
|
||||
if (
|
||||
typeof this.setting.value !== 'undefined' &&
|
||||
SettingsProvider.validateValue(this.setting, this.setting.value)
|
||||
) {
|
||||
// handle general settings, with special actions
|
||||
switch (this.setting.name) {
|
||||
case 'language':
|
||||
@@ -90,23 +94,25 @@ export class SettingsItemComponent {
|
||||
break;
|
||||
default:
|
||||
}
|
||||
await this.settingsProvider
|
||||
.setSettingValue(this.setting.categories[0],
|
||||
this.setting.name,
|
||||
this.setting.value);
|
||||
await this.settingsProvider.setSettingValue(
|
||||
this.setting.categories[0],
|
||||
this.setting.name,
|
||||
this.setting.value,
|
||||
);
|
||||
} else {
|
||||
// reset setting
|
||||
this.setting.value =
|
||||
await this.settingsProvider
|
||||
.getValue(this.setting.categories[0], this.setting.name) as (SCSettingValue | SCSettingValues);
|
||||
this.setting.value = (await this.settingsProvider.getValue(
|
||||
this.setting.categories[0],
|
||||
this.setting.name,
|
||||
)) as SCSettingValue | SCSettingValues;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Mapping of typeOf for Html usage
|
||||
*/
|
||||
// tslint:disable-next-line:prefer-function-over-method
|
||||
typeOf(val: unknown) {
|
||||
return typeof (val);
|
||||
// eslint-disable-next-line class-methods-use-this
|
||||
typeOf(value: unknown) {
|
||||
return typeof value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,37 +1,80 @@
|
||||
<ion-card *ngIf="setting">
|
||||
<ion-card-header *ngIf="{ name: ('name' | thingTranslate: setting | titlecase), desc: ('description' | thingTranslate: setting | titlecase) } let vals">
|
||||
<ion-card-header
|
||||
*ngIf="
|
||||
{
|
||||
name: ('name' | thingTranslate: setting | titlecase),
|
||||
desc: ('description' | thingTranslate: setting | titlecase)
|
||||
};
|
||||
let vals
|
||||
"
|
||||
>
|
||||
<ion-card-subtitle>
|
||||
{{ vals.name }}
|
||||
<ion-icon *ngIf="compactView" name="information-circle-outline" (click)="presentAlert( vals.name , vals.desc )"></ion-icon>
|
||||
<ion-icon
|
||||
*ngIf="compactView"
|
||||
name="information-circle-outline"
|
||||
(click)="presentAlert(vals.name, vals.desc)"
|
||||
></ion-icon>
|
||||
</ion-card-subtitle>
|
||||
</ion-card-header>
|
||||
<ion-card-content>
|
||||
<ion-note *ngIf="!compactView">{{ 'description' | thingTranslate: setting | titlecase }}</ion-note>
|
||||
<ion-note *ngIf="!compactView">{{
|
||||
'description' | thingTranslate: setting | titlecase
|
||||
}}</ion-note>
|
||||
|
||||
<div [ngSwitch]="setting.inputType" *ngIf="isVisible" >
|
||||
<div [ngSwitch]="setting.inputType" *ngIf="isVisible">
|
||||
<ion-item *ngSwitchCase="'number'">
|
||||
<ion-label></ion-label>
|
||||
<ion-input type='number' [(ngModel)]="setting.value" value={{setting.value}} (ionChange)="settingChanged()"></ion-input>
|
||||
<ion-input
|
||||
type="number"
|
||||
[(ngModel)]="setting.value"
|
||||
value="{{ setting.value }}"
|
||||
(ionChange)="settingChanged()"
|
||||
></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item *ngSwitchCase="'text'">
|
||||
<ion-label></ion-label>
|
||||
<ion-input type="text" [(ngModel)]="setting.value" value={{setting.value}} (ionChange)="settingChanged()"></ion-input>
|
||||
<ion-input
|
||||
type="text"
|
||||
[(ngModel)]="setting.value"
|
||||
value="{{ setting.value }}"
|
||||
(ionChange)="settingChanged()"
|
||||
></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item *ngSwitchCase="'password'">
|
||||
<ion-label></ion-label>
|
||||
<ion-input type="password" [(ngModel)]="setting.value" value={{setting.value}} (ionChange)="settingChanged()"></ion-input>
|
||||
<ion-input
|
||||
type="password"
|
||||
[(ngModel)]="setting.value"
|
||||
value="{{ setting.value }}"
|
||||
(ionChange)="settingChanged()"
|
||||
></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item *ngSwitchCase="'single choice'">
|
||||
<ion-label></ion-label>
|
||||
<!-- if values are boolean show as toggle -->
|
||||
<ion-toggle *ngIf="typeOf(setting.defaultValue) === 'boolean'" [(ngModel)]="setting.value" (ionChange)="settingChanged()"></ion-toggle>
|
||||
<ion-toggle
|
||||
*ngIf="typeOf(setting.defaultValue) === 'boolean'"
|
||||
[(ngModel)]="setting.value"
|
||||
(ionChange)="settingChanged()"
|
||||
></ion-toggle>
|
||||
<!-- else show select input -->
|
||||
<ion-select *ngIf="typeOf(setting.defaultValue) !== 'boolean'" interface="popover" [(ngModel)]="setting.value" (ionChange)="settingChanged()">
|
||||
<ion-select-option *ngFor="let val of setting.values, index as i" [value]="val">
|
||||
<div *ngIf="typeOf(val) !== 'number'">{{ ('values' | thingTranslate: setting)[i] | titlecase }}</div>
|
||||
<ion-select
|
||||
*ngIf="typeOf(setting.defaultValue) !== 'boolean'"
|
||||
interface="popover"
|
||||
[(ngModel)]="setting.value"
|
||||
(ionChange)="settingChanged()"
|
||||
>
|
||||
<ion-select-option
|
||||
*ngFor="let val of setting.values; index as i"
|
||||
[value]="val"
|
||||
>
|
||||
<div *ngIf="typeOf(val) !== 'number'">
|
||||
{{ ('values' | thingTranslate: setting)[i] | titlecase }}
|
||||
</div>
|
||||
<div *ngIf="typeOf(val) === 'number'">{{ val }}</div>
|
||||
</ion-select-option>
|
||||
</ion-select>
|
||||
@@ -39,9 +82,18 @@
|
||||
|
||||
<ion-item *ngSwitchCase="'multiple choice'">
|
||||
<ion-label></ion-label>
|
||||
<ion-select [(ngModel)]="setting.value" multiple="true" (ionChange)="settingChanged()">
|
||||
<ion-select-option *ngFor="let val of setting.values, index as i" [value]="val">
|
||||
<div *ngIf="typeOf(val) !== 'number'">{{ ('values' | thingTranslate: setting)[i] | titlecase }}</div>
|
||||
<ion-select
|
||||
[(ngModel)]="setting.value"
|
||||
multiple="true"
|
||||
(ionChange)="settingChanged()"
|
||||
>
|
||||
<ion-select-option
|
||||
*ngFor="let val of setting.values; index as i"
|
||||
[value]="val"
|
||||
>
|
||||
<div *ngIf="typeOf(val) !== 'number'">
|
||||
{{ ('values' | thingTranslate: setting)[i] | titlecase }}
|
||||
</div>
|
||||
<div *ngIf="typeOf(val) === 'number'">{{ val }}</div>
|
||||
</ion-select-option>
|
||||
</ion-select>
|
||||
|
||||
Reference in New Issue
Block a user