mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-07-31 17:38:28 +00:00
[ACA-1488] admin actions and settings (#496)
* restrict experimental settings to admins * automatically edit new experimental flags * extra menu items for admins
This commit is contained in:
@@ -13,6 +13,18 @@
|
||||
{{ 'APP.LANGUAGE' | translate }}
|
||||
</button>
|
||||
|
||||
<button *ngIf="(profile$ | async)?.isAdmin"
|
||||
mat-menu-item
|
||||
routerLink="/about">
|
||||
{{ 'APP.BROWSE.ABOUT.TITLE' | translate }}
|
||||
</button>
|
||||
|
||||
<button *ngIf="(profile$ | async)?.isAdmin"
|
||||
mat-menu-item
|
||||
routerLink="/settings">
|
||||
{{ 'APP.SETTINGS.TITLE' | translate }}
|
||||
</button>
|
||||
|
||||
<button mat-menu-item adf-logout>
|
||||
{{ 'APP.SIGN_OUT' | translate }}
|
||||
</button>
|
||||
|
@@ -53,45 +53,17 @@
|
||||
</mat-checkbox>
|
||||
</mat-expansion-panel>
|
||||
|
||||
<mat-expansion-panel>
|
||||
<mat-expansion-panel *ngIf="(profile$ | async)?.isAdmin">
|
||||
<mat-expansion-panel-header>
|
||||
<mat-panel-title>
|
||||
{{ 'APP.SETTINGS.EXPERIMENTAL-FEATURES' | translate }}
|
||||
</mat-panel-title>
|
||||
</mat-expansion-panel-header>
|
||||
<div>
|
||||
<div *ngFor="let flag of experimental">
|
||||
<mat-checkbox
|
||||
[(ngModel)]="libraries"
|
||||
(change)="onChangeLibrariesFeature($event)">
|
||||
Library Management
|
||||
</mat-checkbox>
|
||||
</div>
|
||||
<div>
|
||||
<mat-checkbox
|
||||
[(ngModel)]="comments"
|
||||
(change)="onChangeCommentsFeature($event)">
|
||||
Comments
|
||||
</mat-checkbox>
|
||||
</div>
|
||||
<div>
|
||||
<mat-checkbox
|
||||
[(ngModel)]="cardview"
|
||||
(change)="onChangeCardviewFeature($event)">
|
||||
Cardview
|
||||
</mat-checkbox>
|
||||
</div>
|
||||
<div>
|
||||
<mat-checkbox
|
||||
[(ngModel)]="share"
|
||||
(change)="onChangeShareFeature($event)">
|
||||
Share
|
||||
</mat-checkbox>
|
||||
</div>
|
||||
<div>
|
||||
<mat-checkbox
|
||||
[(ngModel)]="extensions"
|
||||
(change)="onChangeExtensionsFeature($event)">
|
||||
Extensions
|
||||
[(ngModel)]="flag.value"
|
||||
(change)="onToggleExperimentalFeature(flag.key, $event)">
|
||||
{{ flag.key }}
|
||||
</mat-checkbox>
|
||||
</div>
|
||||
</mat-expansion-panel>
|
||||
|
@@ -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<ProfileState>;
|
||||
appName$: Observable<string>;
|
||||
headerColor$: Observable<string>;
|
||||
languagePicker$: Observable<boolean>;
|
||||
libraries: boolean;
|
||||
comments: boolean;
|
||||
cardview: boolean;
|
||||
share: boolean;
|
||||
extensions: boolean;
|
||||
experimental: Array<{ key: string, value: boolean }> = [];
|
||||
|
||||
constructor(
|
||||
private store: Store<AppStore>,
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user