[ACA-1039] improved breadcrumbs for admins (#840)

This commit is contained in:
Denys Vuika 2018-11-29 11:48:15 +00:00 committed by GitHub
parent 462cc09146
commit 2e72dc1c6c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 31 additions and 2 deletions

View File

@ -41,7 +41,8 @@ import { ContentApiService } from '../../services/content-api.service';
import { AppExtensionService } from '../../extensions/extension.service'; import { AppExtensionService } from '../../extensions/extension.service';
import { SetCurrentFolderAction } from '../../store/actions'; import { SetCurrentFolderAction } from '../../store/actions';
import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout'; import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
import { debounceTime } from 'rxjs/operators'; import { debounceTime, takeUntil } from 'rxjs/operators';
import { isAdmin } from '../../store/selectors/app.selectors';
@Component({ @Component({
templateUrl: './files.component.html' templateUrl: './files.component.html'
@ -49,6 +50,7 @@ import { debounceTime } from 'rxjs/operators';
export class FilesComponent extends PageComponent implements OnInit, OnDestroy { export class FilesComponent extends PageComponent implements OnInit, OnDestroy {
isValidPath = true; isValidPath = true;
isSmallScreen = false; isSmallScreen = false;
isAdmin = false;
private nodePath: PathElement[]; private nodePath: PathElement[];
@ -118,6 +120,13 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy {
}) })
]); ]);
this.store
.select(isAdmin)
.pipe(takeUntil(this.onDestroy$))
.subscribe(value => {
this.isAdmin = value;
});
this.columns = this.extensions.documentListPresets.files || []; this.columns = this.extensions.documentListPresets.files || [];
} }
@ -238,7 +247,9 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy {
if (elements.length > 1) { if (elements.length > 1) {
if (elements[1].name === 'User Homes') { if (elements[1].name === 'User Homes') {
if (!this.isAdmin) {
elements.splice(0, 2); elements.splice(0, 2);
}
} else if (elements[1].name === 'Sites') { } else if (elements[1].name === 'Sites') {
await this.normalizeSitePath(node); await this.normalizeSitePath(node);
} }

View File

@ -27,59 +27,77 @@ import { createSelector } from '@ngrx/store';
import { AppStore } from '../states/app.state'; import { AppStore } from '../states/app.state';
export const selectApp = (state: AppStore) => state.app; export const selectApp = (state: AppStore) => state.app;
export const selectHeaderColor = createSelector( export const selectHeaderColor = createSelector(
selectApp, selectApp,
state => state.headerColor state => state.headerColor
); );
export const selectAppName = createSelector( export const selectAppName = createSelector(
selectApp, selectApp,
state => state.appName state => state.appName
); );
export const selectLogoPath = createSelector( export const selectLogoPath = createSelector(
selectApp, selectApp,
state => state.logoPath state => state.logoPath
); );
export const appSelection = createSelector( export const appSelection = createSelector(
selectApp, selectApp,
state => state.selection state => state.selection
); );
export const appLanguagePicker = createSelector( export const appLanguagePicker = createSelector(
selectApp, selectApp,
state => state.languagePicker state => state.languagePicker
); );
export const selectUser = createSelector( export const selectUser = createSelector(
selectApp, selectApp,
state => state.user state => state.user
); );
export const sharedUrl = createSelector( export const sharedUrl = createSelector(
selectApp, selectApp,
state => state.sharedUrl state => state.sharedUrl
); );
export const appNavigation = createSelector( export const appNavigation = createSelector(
selectApp, selectApp,
state => state.navigation state => state.navigation
); );
export const currentFolder = createSelector( export const currentFolder = createSelector(
selectApp, selectApp,
state => state.navigation.currentFolder state => state.navigation.currentFolder
); );
export const infoDrawerOpened = createSelector( export const infoDrawerOpened = createSelector(
selectApp, selectApp,
state => state.infoDrawerOpened state => state.infoDrawerOpened
); );
export const documentDisplayMode = createSelector( export const documentDisplayMode = createSelector(
selectApp, selectApp,
state => state.documentDisplayMode state => state.documentDisplayMode
); );
export const repositoryStatus = createSelector( export const repositoryStatus = createSelector(
selectApp, selectApp,
state => state.repository state => state.repository
); );
export const isQuickShareEnabled = createSelector( export const isQuickShareEnabled = createSelector(
repositoryStatus, repositoryStatus,
status => status.isQuickShareEnabled status => status.isQuickShareEnabled
); );
export const isAdmin = createSelector(
selectApp,
state => state.user.isAdmin
);
export const ruleContext = createSelector( export const ruleContext = createSelector(
appSelection, appSelection,
appNavigation, appNavigation,