- {{ settingsCache[categoryKey].settings[objectKeys(settingsCache[categoryKey].settings)[0]].translations[language].categories[0]}}
-
+ {{ translator.translate(settingsCache[categoryKey]?.settings[objectKeys(settingsCache[categoryKey]?.settings)[0]]).categories()[0] | titlecase}}
diff --git a/src/app/modules/settings/settings.provider.spec.ts b/src/app/modules/settings/settings.provider.spec.ts
index fceaef29..a467c869 100644
--- a/src/app/modules/settings/settings.provider.spec.ts
+++ b/src/app/modules/settings/settings.provider.spec.ts
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018, 2019 StApps
+ * Copyright (C) 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -14,10 +14,10 @@
*/
import {TestBed} from '@angular/core/testing';
import {SCSetting, SCThingOriginType, SCThingType, SCSettingInputType} from '@openstapps/core';
+import {Geolocation} from '@ionic-native/geolocation/ngx';
import {ConfigProvider} from '../config/config.provider';
import {StorageProvider} from '../storage/storage.provider';
import {SettingsProvider, SettingValuesContainer, STORAGE_KEY_SETTING_VALUES} from './settings.provider';
-import {Geolocation} from '@ionic-native/geolocation/ngx';
describe('SettingsProvider', () => {
let configProviderSpy: jasmine.SpyObj;
@@ -203,11 +203,9 @@ describe('SettingsProvider', () => {
},
translations: {
de: {
- categories: ['Anmeldedaten'],
name: 'Benutzername',
},
en: {
- categories: ['Credentials'],
name: 'Username',
},
},
@@ -228,11 +226,9 @@ describe('SettingsProvider', () => {
},
translations: {
de: {
- categories: ['Anmeldedaten'],
name: 'Passwort',
},
en: {
- categories: ['Credentials'],
name: 'Password',
},
},
@@ -241,8 +237,8 @@ describe('SettingsProvider', () => {
},
{
categories: ['profile'],
- description: '',
defaultValue: 0,
+ description: '',
inputType: SCSettingInputType.Number,
name: 'age',
order: 0,
@@ -253,11 +249,9 @@ describe('SettingsProvider', () => {
},
translations: {
de: {
- categories: ['Profil'],
name: 'Alter',
},
en: {
- categories: ['Profile'],
name: 'Age',
},
},
@@ -278,13 +272,11 @@ describe('SettingsProvider', () => {
},
translations: {
de: {
- categories: ['Benutzer'],
description: 'Mit welcher Benutzergruppe soll die App verwendet werden?'
+ ' Die Einstellung wird beispielsweise für die Vorauswahl der Preiskategorie der Mensa verwendet.',
name: 'Gruppe',
},
en: {
- categories: ['User'],
description: 'The user group the app is going to be used.'
+ 'This settings for example is getting used for the predefined price category of mensa meals.',
name: 'Group',
@@ -308,12 +300,10 @@ describe('SettingsProvider', () => {
},
translations: {
de: {
- categories: ['Benutzer'],
description: 'Die Sprache in der die App angezeigt werden soll',
name: 'Sprache',
},
en: {
- categories: ['User'],
description: 'The language this app is going to use',
name: 'Language',
},
@@ -336,13 +326,11 @@ describe('SettingsProvider', () => {
},
translations: {
de: {
- categories: ['Privatsphäre'],
description: 'Berechtigung für die Verwendung des Ortungsdienstes, für die Anzeige der aktuellen ' +
'Position \'\n auf der Karte und zur Berechnung der Entfernung zu Gebäuden und Orten des Campus',
name: 'Position',
},
en: {
- categories: ['Privacy'],
description: 'Allow the App to use the device location to provide additional informationsbased ' +
'on your actual location',
name: 'Position',
@@ -354,8 +342,8 @@ describe('SettingsProvider', () => {
},
{
categories: ['others'],
- description: '',
defaultValue: [],
+ description: '',
inputType: SCSettingInputType.MultipleChoice,
name: 'numbers',
order: 0,
@@ -366,12 +354,10 @@ describe('SettingsProvider', () => {
},
translations: {
de: {
- categories: ['Sonstiges'],
description: 'Test für multiple select Feld',
name: 'Nummern',
},
en: {
- categories: ['Others'],
description: 'Test for multiple select field',
name: 'Numbers',
},
diff --git a/src/app/modules/settings/settings.provider.ts b/src/app/modules/settings/settings.provider.ts
index 894218b1..34da2d2b 100644
--- a/src/app/modules/settings/settings.provider.ts
+++ b/src/app/modules/settings/settings.provider.ts
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018, 2019 StApps
+ * Copyright (C) 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -19,7 +19,7 @@ import {
SCSettingValue,
SCSettingValues,
} from '@openstapps/core';
-import * as deepMerge from 'deepmerge';
+import deepmerge from 'deepmerge';
import {ConfigProvider} from '../config/config.provider';
import {StorageProvider} from '../storage/storage.provider';
@@ -64,7 +64,6 @@ export interface SettingValueContainer {
/**
* Provider for app settings
- *
*/
@Injectable()
export class SettingsProvider {
@@ -161,7 +160,7 @@ export class SettingsProvider {
}
/**
- *
+ *
* @param storage TODO
* @param configProvider TODO
* @param geoLocation TODO
@@ -340,7 +339,7 @@ export class SettingsProvider {
*
* @throws Exception if setting is not provided
*/
- public async getValue(category: string, name: string): Promise {
+ public async getValue(category: string, name: string): Promise {
await this.init();
if (this.settingExists(category, name)) {
// return a copy of the settings value
@@ -396,7 +395,7 @@ export class SettingsProvider {
const savedSettingsValues: SettingValuesContainer =
await this.storage.get(STORAGE_KEY_SETTING_VALUES);
const cacheSettingsValues = this.getSettingValuesFromCache();
- const mergedSettingValues = deepMerge(savedSettingsValues, cacheSettingsValues);
+ const mergedSettingValues = deepmerge(savedSettingsValues, cacheSettingsValues);
await this.storage
.put(STORAGE_KEY_SETTING_VALUES, mergedSettingValues);
} else {
@@ -416,7 +415,7 @@ export class SettingsProvider {
* Sets a valid value of a setting and persists changes in storage
* @param category Category key name
* @param name Setting key name
- * @param value Value to be set
+ * @param value Value to be set
*
* @throws Exception if setting is not provided or value not valid to the settings inputType
*/