+
- Library Management
-
-
-
-
- Comments
-
-
-
-
- Cardview
-
-
-
-
- Share
-
-
-
-
- Extensions
+ [(ngModel)]="flag.value"
+ (change)="onToggleExperimentalFeature(flag.key, $event)">
+ {{ flag.key }}
diff --git a/src/app/components/settings/settings.component.ts b/src/app/components/settings/settings.component.ts
index 4ed9f18cd..497fe1b2b 100644
--- a/src/app/components/settings/settings.component.ts
+++ b/src/app/components/settings/settings.component.ts
@@ -28,8 +28,8 @@ import { AppConfigService, StorageService, SettingsService } from '@alfresco/adf
import { Validators, FormGroup, FormBuilder } from '@angular/forms';
import { Observable } from 'rxjs/Rx';
import { Store } from '@ngrx/store';
-import { AppStore } from '../../store/states';
-import { appLanguagePicker, selectHeaderColor, selectAppName } from '../../store/selectors/app.selectors';
+import { AppStore, ProfileState } from '../../store/states';
+import { appLanguagePicker, selectHeaderColor, selectAppName, selectUser } from '../../store/selectors/app.selectors';
import { MatCheckboxChange } from '@angular/material';
import { SetLanguagePickerAction } from '../../store/actions';
@@ -45,14 +45,11 @@ export class SettingsComponent implements OnInit {
form: FormGroup;
+ profile$: Observable
;
appName$: Observable;
headerColor$: Observable;
languagePicker$: Observable;
- libraries: boolean;
- comments: boolean;
- cardview: boolean;
- share: boolean;
- extensions: boolean;
+ experimental: Array<{ key: string, value: boolean }> = [];
constructor(
private store: Store,
@@ -60,6 +57,7 @@ export class SettingsComponent implements OnInit {
private settingsService: SettingsService,
private storage: StorageService,
private fb: FormBuilder) {
+ this.profile$ = store.select(selectUser);
this.appName$ = store.select(selectAppName);
this.languagePicker$ = store.select(appLanguagePicker);
this.headerColor$ = store.select(selectHeaderColor);
@@ -76,20 +74,14 @@ export class SettingsComponent implements OnInit {
this.reset();
- const libraries = this.appConfig.get('experimental.libraries');
- this.libraries = (libraries === true || libraries === 'true');
-
- const comments = this.appConfig.get('experimental.comments');
- this.comments = (comments === true || comments === 'true');
-
- const cardview = this.appConfig.get('experimental.cardview');
- this.cardview = (cardview === true || cardview === 'true');
-
- const share = this.appConfig.get('experimental.share');
- this.share = (share === true || share === 'true');
-
- const extensions = this.appConfig.get('experimental.extensions');
- this.extensions = (extensions === true || extensions === 'true');
+ const settings = this.appConfig.get('experimental');
+ this.experimental = Object.keys(settings).map(key => {
+ const value = this.appConfig.get(`experimental.${key}`);
+ return {
+ key,
+ value: (value === true || value === 'true')
+ };
+ });
}
apply(model: any, isValid: boolean) {
@@ -110,23 +102,7 @@ export class SettingsComponent implements OnInit {
this.store.dispatch(new SetLanguagePickerAction(event.checked));
}
- onChangeLibrariesFeature(event: MatCheckboxChange) {
- this.storage.setItem('experimental.libraries', event.checked.toString());
- }
-
- onChangeCommentsFeature(event: MatCheckboxChange) {
- this.storage.setItem('experimental.comments', event.checked.toString());
- }
-
- onChangeCardviewFeature(event: MatCheckboxChange) {
- this.storage.setItem('experimental.cardview', event.checked.toString());
- }
-
- onChangeShareFeature(event: MatCheckboxChange) {
- this.storage.setItem('experimental.share', event.checked.toString());
- }
-
- onChangeExtensionsFeature(event: MatCheckboxChange) {
- this.storage.setItem('experimental.extensions', event.checked.toString());
+ onToggleExperimentalFeature(key: string, event: MatCheckboxChange) {
+ this.storage.setItem(`experimental.${key}`, event.checked.toString());
}
}
diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json
index a04083252..10e678b8e 100644
--- a/src/assets/i18n/en.json
+++ b/src/assets/i18n/en.json
@@ -4,6 +4,7 @@
"SIGN_IN": "Sign in",
"SIGN_OUT": "Sign out",
"SETTINGS": {
+ "TITLE": "Settings",
"APPLICATION-SETTINGS": "Application Settings",
"REPOSITORY-SETTINGS": "Repository Settings",
"EXPERIMENTAL-FEATURES": "Experimental Features",