mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-07-24 17:31:52 +00:00
Revert "[AAE-5874] Re-evaluate extension rules when context changes" (#2301)
* Revert "[AAE-5874] Re-evaluate extension rules when context changes (#2296)"
This reverts commit fb140531f4
.
* [ci:force]
This commit is contained in:
committed by
Denys Vuika
parent
38cdbfa9c1
commit
de355cc300
@@ -22,6 +22,7 @@
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { ContentActionRef, SidebarTabRef } from '@alfresco/adf-extensions';
|
||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
@@ -47,15 +48,14 @@ describe('InfoDrawerComponent', () => {
|
||||
};
|
||||
const extensionServiceMock = {
|
||||
getSidebarTabs: () => {},
|
||||
getAllowedSidebarActions: () =>
|
||||
of([
|
||||
{
|
||||
id: 'app.sidebar.close',
|
||||
order: 100,
|
||||
title: 'close',
|
||||
icon: 'highlight_off'
|
||||
}
|
||||
])
|
||||
getAllowedSidebarActions: () => [
|
||||
{
|
||||
id: 'app.sidebar.close',
|
||||
order: 100,
|
||||
title: 'close',
|
||||
icon: 'highlight_off'
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
beforeEach(() => {
|
||||
|
@@ -27,7 +27,7 @@ import { Component, HostListener, Input, OnChanges, OnDestroy, OnInit } from '@a
|
||||
import { MinimalNodeEntity, MinimalNodeEntryEntity, SiteEntry } from '@alfresco/js-api';
|
||||
import { ContentActionRef, SidebarTabRef } from '@alfresco/adf-extensions';
|
||||
import { Store } from '@ngrx/store';
|
||||
import { SetInfoDrawerStateAction, ToggleInfoDrawerAction, infoDrawerPreview } from '@alfresco/aca-shared/store';
|
||||
import { getAppSelection, SetInfoDrawerStateAction, ToggleInfoDrawerAction, infoDrawerPreview } from '@alfresco/aca-shared/store';
|
||||
import { AppExtensionService } from '../../services/app.extension.service';
|
||||
import { ContentApiService } from '../../services/content-api.service';
|
||||
import { takeUntil } from 'rxjs/operators';
|
||||
@@ -60,11 +60,11 @@ export class InfoDrawerComponent implements OnChanges, OnInit, OnDestroy {
|
||||
|
||||
ngOnInit() {
|
||||
this.tabs = this.extensions.getSidebarTabs();
|
||||
this.extensions
|
||||
.getAllowedSidebarActions()
|
||||
this.store
|
||||
.select(getAppSelection)
|
||||
.pipe(takeUntil(this.onDestroy$))
|
||||
.subscribe((actions) => {
|
||||
this.actions = actions;
|
||||
.subscribe(() => {
|
||||
this.actions = this.extensions.getAllowedSidebarActions();
|
||||
});
|
||||
|
||||
this.store
|
||||
|
@@ -6,7 +6,6 @@
|
||||
[color]="color"
|
||||
[attr.aria-label]="actionRef.description || actionRef.title | translate"
|
||||
[attr.title]="actionRef.description || actionRef.title | translate"
|
||||
[disabled]="actionRef.disabled"
|
||||
(click)="runAction()"
|
||||
>
|
||||
<adf-icon [value]="actionRef.icon"></adf-icon>
|
||||
|
@@ -5,7 +5,6 @@
|
||||
[attr.aria-label]="actionRef.description || actionRef.title | translate"
|
||||
[attr.title]="actionRef.description || actionRef.title | translate"
|
||||
[matMenuTriggerFor]="menu"
|
||||
[disabled]="actionRef.disabled"
|
||||
#matTrigger="matMenuTrigger"
|
||||
>
|
||||
<adf-icon [value]="actionRef.icon"></adf-icon>
|
||||
|
@@ -60,17 +60,9 @@ describe('AppExtensionService', () => {
|
||||
extensions = TestBed.inject(ExtensionService);
|
||||
});
|
||||
|
||||
const applyConfig = (config: ExtensionConfig, selection?: boolean) => {
|
||||
const applyConfig = (config: ExtensionConfig) => {
|
||||
extensions.setup(config);
|
||||
service.setup(config);
|
||||
if (selection) {
|
||||
service.selection = {
|
||||
isEmpty: false,
|
||||
count: 1,
|
||||
libraries: null,
|
||||
nodes: null
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
describe('configs', () => {
|
||||
@@ -292,7 +284,7 @@ describe('AppExtensionService', () => {
|
||||
});
|
||||
|
||||
describe('content actions', () => {
|
||||
it('should load content actions from the config', (done) => {
|
||||
it('should load content actions from the config', () => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -305,26 +297,23 @@ describe('AppExtensionService', () => {
|
||||
{
|
||||
id: 'aca:toolbar/separator-1',
|
||||
order: 1,
|
||||
type: ContentActionType.default,
|
||||
type: ContentActionType.separator,
|
||||
title: 'action1'
|
||||
},
|
||||
{
|
||||
id: 'aca:toolbar/separator-2',
|
||||
order: 2,
|
||||
type: ContentActionType.default,
|
||||
type: ContentActionType.separator,
|
||||
title: 'action2'
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
service.getAllowedToolbarActions().subscribe((actions) => {
|
||||
expect(actions.length).toBe(2);
|
||||
done();
|
||||
});
|
||||
expect(service.toolbarActions.length).toBe(2);
|
||||
});
|
||||
|
||||
it('should sort content actions by order', (done) => {
|
||||
it('should sort content actions by order', () => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -337,30 +326,27 @@ describe('AppExtensionService', () => {
|
||||
{
|
||||
id: 'aca:toolbar/separator-2',
|
||||
order: 2,
|
||||
type: ContentActionType.default,
|
||||
type: ContentActionType.separator,
|
||||
title: 'action2'
|
||||
},
|
||||
{
|
||||
id: 'aca:toolbar/separator-1',
|
||||
order: 1,
|
||||
type: ContentActionType.default,
|
||||
type: ContentActionType.separator,
|
||||
title: 'action1'
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
service.getAllowedToolbarActions().subscribe((actions) => {
|
||||
expect(actions.length).toBe(2);
|
||||
expect(actions[0].id).toBe('aca:toolbar/separator-1');
|
||||
expect(actions[1].id).toBe('aca:toolbar/separator-2');
|
||||
done();
|
||||
});
|
||||
expect(service.toolbarActions.length).toBe(2);
|
||||
expect(service.toolbarActions[0].id).toBe('aca:toolbar/separator-1');
|
||||
expect(service.toolbarActions[1].id).toBe('aca:toolbar/separator-2');
|
||||
});
|
||||
});
|
||||
|
||||
describe('open with', () => {
|
||||
it('should load [open with] actions for the viewer', (done) => {
|
||||
it('should load [open with] actions for the viewer', () => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -387,13 +373,10 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
service.getOpenWithActions().subscribe((actions) => {
|
||||
expect(actions.length).toBe(1);
|
||||
done();
|
||||
});
|
||||
expect(service.openWithActions.length).toBe(1);
|
||||
});
|
||||
|
||||
it('should load only enabled [open with] actions for the viewer', (done) => {
|
||||
it('should load only enabled [open with] actions for the viewer', () => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -430,14 +413,11 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
service.getOpenWithActions().subscribe((actions) => {
|
||||
expect(actions.length).toBe(1);
|
||||
expect(actions[0].id).toBe('aca:viewer/action2');
|
||||
done();
|
||||
});
|
||||
expect(service.openWithActions.length).toBe(1);
|
||||
expect(service.openWithActions[0].id).toBe('aca:viewer/action2');
|
||||
});
|
||||
|
||||
it('should sort [open with] actions by order', (done) => {
|
||||
it('should sort [open with] actions by order', () => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -473,17 +453,14 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
service.getOpenWithActions().subscribe((actions) => {
|
||||
expect(actions.length).toBe(2);
|
||||
expect(actions[0].id).toBe('aca:viewer/action1');
|
||||
expect(actions[1].id).toBe('aca:viewer/action2');
|
||||
done();
|
||||
});
|
||||
expect(service.openWithActions.length).toBe(2);
|
||||
expect(service.openWithActions[0].id).toBe('aca:viewer/action1');
|
||||
expect(service.openWithActions[1].id).toBe('aca:viewer/action2');
|
||||
});
|
||||
});
|
||||
|
||||
describe('create', () => {
|
||||
it('should load [create] actions from config', (done) => {
|
||||
it('should load [create] actions from config', () => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -504,13 +481,10 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
service.getCreateActions().subscribe((actions) => {
|
||||
expect(actions.length).toBe(1);
|
||||
done();
|
||||
});
|
||||
expect(service.createActions.length).toBe(1);
|
||||
});
|
||||
|
||||
it('should sort [create] actions by order', (done) => {
|
||||
it('should sort [create] actions by order', () => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -538,12 +512,9 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
service.getCreateActions().subscribe((actions) => {
|
||||
expect(actions.length).toBe(2);
|
||||
expect(actions[0].id).toBe('aca:create/folder-2');
|
||||
expect(actions[1].id).toBe('aca:create/folder');
|
||||
done();
|
||||
});
|
||||
expect(service.createActions.length).toBe(2);
|
||||
expect(service.createActions[0].id).toBe('aca:create/folder-2');
|
||||
expect(service.createActions[1].id).toBe('aca:create/folder');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -729,7 +700,7 @@ describe('AppExtensionService', () => {
|
||||
});
|
||||
|
||||
describe('getSharedLinkViewerToolbarActions', () => {
|
||||
it('should get shared link viewer actions', (done) => {
|
||||
it('should get shared link viewer actions', () => {
|
||||
const actions = [
|
||||
{
|
||||
id: 'id',
|
||||
@@ -753,29 +724,23 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
];
|
||||
|
||||
applyConfig(
|
||||
{
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
$version: '1.0.0',
|
||||
$license: 'MIT',
|
||||
$vendor: 'Good company',
|
||||
$runtime: '1.5.0',
|
||||
features: {
|
||||
viewer: {
|
||||
shared: {
|
||||
toolbarActions: actions
|
||||
}
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
$version: '1.0.0',
|
||||
$license: 'MIT',
|
||||
$vendor: 'Good company',
|
||||
$runtime: '1.5.0',
|
||||
features: {
|
||||
viewer: {
|
||||
shared: {
|
||||
toolbarActions: actions
|
||||
}
|
||||
}
|
||||
},
|
||||
true
|
||||
);
|
||||
|
||||
service.getSharedLinkViewerToolbarActions().subscribe((sharedLinkViewerToolbarActions) => {
|
||||
expect(sharedLinkViewerToolbarActions).toEqual(expectedActions);
|
||||
done();
|
||||
}
|
||||
});
|
||||
|
||||
expect(service.getSharedLinkViewerToolbarActions()).toEqual(expectedActions);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -828,7 +793,7 @@ describe('AppExtensionService', () => {
|
||||
});
|
||||
|
||||
describe('getHeaderActions', () => {
|
||||
it('should load user actions from the config', (done) => {
|
||||
it('should load user actions from the config', () => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -841,24 +806,21 @@ describe('AppExtensionService', () => {
|
||||
{
|
||||
id: 'header.action.separator.1',
|
||||
order: 1,
|
||||
type: ContentActionType.default
|
||||
type: ContentActionType.separator
|
||||
},
|
||||
{
|
||||
id: 'header.action.separator.2',
|
||||
order: 2,
|
||||
type: ContentActionType.default
|
||||
type: ContentActionType.separator
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
service.getHeaderActions().subscribe((headerActions) => {
|
||||
expect(headerActions.length).toBe(2);
|
||||
done();
|
||||
});
|
||||
expect(service.headerActions.length).toBe(2);
|
||||
});
|
||||
|
||||
it('should sort header actions by order', (done) => {
|
||||
it('should sort header actions by order', () => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -882,15 +844,12 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
service.getHeaderActions().subscribe((headerActions) => {
|
||||
expect(headerActions.length).toBe(2);
|
||||
expect(headerActions[0].id).toBe('header.action.2');
|
||||
expect(headerActions[1].id).toBe('header.action.1');
|
||||
done();
|
||||
});
|
||||
const actions = service.getHeaderActions();
|
||||
expect(actions[0].id).toBe('header.action.2');
|
||||
expect(actions[1].id).toBe('header.action.1');
|
||||
});
|
||||
|
||||
it('should sort header menu children actions by order', (done) => {
|
||||
it('should sort header menu children actions by order', () => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -921,12 +880,9 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
service.getHeaderActions().subscribe((headerActions) => {
|
||||
expect(headerActions.length).toBe(1);
|
||||
expect(headerActions[0].children[0].id).toBe('header.action.2');
|
||||
expect(headerActions[0].children[1].id).toBe('header.action.1');
|
||||
done();
|
||||
});
|
||||
const actions = service.getHeaderActions()[0];
|
||||
expect(actions.children[0].id).toBe('header.action.2');
|
||||
expect(actions.children[1].id).toBe('header.action.1');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1094,7 +1050,7 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
];
|
||||
|
||||
it('should set the action disabled for create actions', (done) => {
|
||||
it('should set the action disabled for create actions', () => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -1107,13 +1063,10 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
service.getCreateActions().subscribe((createActions) => {
|
||||
expect(createActions).toEqual(expectedActionsWithChildren);
|
||||
done();
|
||||
});
|
||||
expect(service.getCreateActions()).toEqual(expectedActionsWithChildren);
|
||||
});
|
||||
|
||||
it('should set the action disabled for sidebar actions', (done) => {
|
||||
it('should set the action disabled for sidebar actions', () => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -1128,13 +1081,10 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
service.getAllowedSidebarActions().subscribe((serviceActions) => {
|
||||
expect(serviceActions).toEqual(expectedActionsWithoutChildren);
|
||||
done();
|
||||
});
|
||||
expect(service.getAllowedSidebarActions()).toEqual(expectedActionsWithoutChildren);
|
||||
});
|
||||
|
||||
it('should set the action disabled for toolbar actions', (done) => {
|
||||
it('should set the action disabled for toolbar actions', () => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -1147,13 +1097,10 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
service.getAllowedToolbarActions().subscribe((serviceActions) => {
|
||||
expect(serviceActions).toEqual(expectedActionsWithoutChildren);
|
||||
done();
|
||||
});
|
||||
expect(service.getAllowedToolbarActions()).toEqual(expectedActionsWithoutChildren);
|
||||
});
|
||||
|
||||
it('should set the action disabled for viewer toolbar actions', (done) => {
|
||||
it('should set the action disabled for viewer toolbar actions', () => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -1166,39 +1113,30 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
service.getViewerToolbarActions().subscribe((serviceActions) => {
|
||||
expect(serviceActions).toEqual(expectedActionsWithoutChildren);
|
||||
done();
|
||||
});
|
||||
expect(service.getViewerToolbarActions()).toEqual(expectedActionsWithoutChildren);
|
||||
});
|
||||
|
||||
it('should set the action disabled for shared link viewer toolbar actions', (done) => {
|
||||
applyConfig(
|
||||
{
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
$version: '1.0.0',
|
||||
$license: 'MIT',
|
||||
$vendor: 'Good company',
|
||||
$runtime: '1.5.0',
|
||||
features: {
|
||||
viewer: {
|
||||
shared: {
|
||||
toolbarActions: actions
|
||||
}
|
||||
it('should set the action disabled for shared link viewer toolbar actions', () => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
$version: '1.0.0',
|
||||
$license: 'MIT',
|
||||
$vendor: 'Good company',
|
||||
$runtime: '1.5.0',
|
||||
features: {
|
||||
viewer: {
|
||||
shared: {
|
||||
toolbarActions: actions
|
||||
}
|
||||
}
|
||||
},
|
||||
true
|
||||
);
|
||||
|
||||
service.getSharedLinkViewerToolbarActions().subscribe((serviceActions) => {
|
||||
expect(serviceActions).toEqual(expectedActionsWithoutChildren);
|
||||
done();
|
||||
}
|
||||
});
|
||||
|
||||
expect(service.getSharedLinkViewerToolbarActions()).toEqual(expectedActionsWithoutChildren);
|
||||
});
|
||||
|
||||
it('should set the action disabled for header actions', (done) => {
|
||||
it('should set the action disabled for header actions', () => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -1211,32 +1149,23 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
service.getHeaderActions().subscribe((serviceActions) => {
|
||||
expect(serviceActions).toEqual(expectedActionsWithoutChildren);
|
||||
done();
|
||||
});
|
||||
expect(service.getHeaderActions()).toEqual(expectedActionsWithoutChildren);
|
||||
});
|
||||
|
||||
it('should set the action disabled for context menu actions', (done) => {
|
||||
applyConfig(
|
||||
{
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
$version: '1.0.0',
|
||||
$license: 'MIT',
|
||||
$vendor: 'Good company',
|
||||
$runtime: '1.5.0',
|
||||
features: {
|
||||
contextMenu: actions
|
||||
}
|
||||
},
|
||||
true
|
||||
);
|
||||
|
||||
service.getAllowedContextMenuActions().subscribe((serviceActions) => {
|
||||
expect(serviceActions).toEqual(expectedActionsWithoutChildren);
|
||||
done();
|
||||
it('should set the action disabled for context menu actions', () => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
$version: '1.0.0',
|
||||
$license: 'MIT',
|
||||
$vendor: 'Good company',
|
||||
$runtime: '1.5.0',
|
||||
features: {
|
||||
contextMenu: actions
|
||||
}
|
||||
});
|
||||
|
||||
expect(service.getAllowedContextMenuActions()).toEqual(expectedActionsWithoutChildren);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@@ -56,7 +56,6 @@ import { RepositoryInfo, NodeEntry } from '@alfresco/js-api';
|
||||
import { ViewerRules } from '../models/viewer.rules';
|
||||
import { SettingsGroupRef } from '../models/types';
|
||||
import { NodePermissionService } from '../services/node-permission.service';
|
||||
import { map } from 'rxjs/operators';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
@@ -64,22 +63,21 @@ import { map } from 'rxjs/operators';
|
||||
export class AppExtensionService implements RuleContext {
|
||||
private _references = new BehaviorSubject<ExtensionRef[]>([]);
|
||||
|
||||
headerActions: Array<ContentActionRef> = [];
|
||||
toolbarActions: Array<ContentActionRef> = [];
|
||||
viewerToolbarActions: Array<ContentActionRef> = [];
|
||||
sharedLinkViewerToolbarActions: Array<ContentActionRef> = [];
|
||||
contextMenuActions: Array<ContentActionRef> = [];
|
||||
openWithActions: Array<ContentActionRef> = [];
|
||||
createActions: Array<ContentActionRef> = [];
|
||||
navbar: Array<NavBarGroupRef> = [];
|
||||
sidebarTabs: Array<SidebarTabRef> = [];
|
||||
sidebarActions: Array<ContentActionRef> = [];
|
||||
contentMetadata: any;
|
||||
search: any;
|
||||
viewerRules: ViewerRules = {};
|
||||
settingGroups: Array<SettingsGroupRef> = [];
|
||||
|
||||
private _headerActions = new BehaviorSubject<Array<ContentActionRef>>([]);
|
||||
private _toolbarActions = new BehaviorSubject<Array<ContentActionRef>>([]);
|
||||
private _viewerToolbarActions = new BehaviorSubject<Array<ContentActionRef>>([]);
|
||||
private _sharedLinkViewerToolbarActions = new BehaviorSubject<Array<ContentActionRef>>([]);
|
||||
private _contextMenuActions = new BehaviorSubject<Array<ContentActionRef>>([]);
|
||||
private _openWithActions = new BehaviorSubject<Array<ContentActionRef>>([]);
|
||||
private _createActions = new BehaviorSubject<Array<ContentActionRef>>([]);
|
||||
private _sidebarActions = new BehaviorSubject<Array<ContentActionRef>>([]);
|
||||
|
||||
documentListPresets: {
|
||||
files: Array<DocumentListPresetRef>;
|
||||
libraries: Array<DocumentListPresetRef>;
|
||||
@@ -108,8 +106,6 @@ export class AppExtensionService implements RuleContext {
|
||||
|
||||
references$: Observable<ExtensionRef[]>;
|
||||
|
||||
config: ExtensionConfig;
|
||||
|
||||
constructor(
|
||||
public auth: AuthenticationService,
|
||||
protected store: Store<AppStore>,
|
||||
@@ -128,16 +124,12 @@ export class AppExtensionService implements RuleContext {
|
||||
this.navigation = result.navigation;
|
||||
this.profile = result.profile;
|
||||
this.repository = result.repository;
|
||||
|
||||
if (this.config) {
|
||||
this.setup(this.config);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async load() {
|
||||
this.config = await this.extensions.load();
|
||||
this.setup(this.config);
|
||||
const config = await this.extensions.load();
|
||||
this.setup(config);
|
||||
}
|
||||
|
||||
setup(config: ExtensionConfig) {
|
||||
@@ -148,15 +140,15 @@ export class AppExtensionService implements RuleContext {
|
||||
|
||||
this.settingGroups = this.loader.getElements<SettingsGroupRef>(config, 'settings');
|
||||
|
||||
this._headerActions.next(this.loader.getContentActions(config, 'features.header'));
|
||||
this._sidebarActions.next(this.loader.getContentActions(config, 'features.sidebar.toolbar'));
|
||||
this._toolbarActions.next(this.loader.getContentActions(config, 'features.toolbar'));
|
||||
this._viewerToolbarActions.next(this.loader.getContentActions(config, 'features.viewer.toolbarActions'));
|
||||
this._sharedLinkViewerToolbarActions.next(this.loader.getContentActions(config, 'features.viewer.shared.toolbarActions'));
|
||||
this._contextMenuActions.next(this.loader.getContentActions(config, 'features.contextMenu'));
|
||||
this._openWithActions.next(this.loader.getContentActions(config, 'features.viewer.openWith'));
|
||||
this._createActions.next(this.loader.getElements<ContentActionRef>(config, 'features.create'));
|
||||
this.headerActions = this.loader.getContentActions(config, 'features.header');
|
||||
this.sidebarActions = this.loader.getContentActions(config, 'features.sidebar.toolbar');
|
||||
this.toolbarActions = this.loader.getContentActions(config, 'features.toolbar');
|
||||
this.viewerToolbarActions = this.loader.getContentActions(config, 'features.viewer.toolbarActions');
|
||||
this.sharedLinkViewerToolbarActions = this.loader.getContentActions(config, 'features.viewer.shared.toolbarActions');
|
||||
|
||||
this.contextMenuActions = this.loader.getContentActions(config, 'features.contextMenu');
|
||||
this.openWithActions = this.loader.getContentActions(config, 'features.viewer.openWith');
|
||||
this.createActions = this.loader.getElements<ContentActionRef>(config, 'features.create');
|
||||
this.navbar = this.loadNavBar(config);
|
||||
this.sidebarTabs = this.loader.getElements<SidebarTabRef>(config, 'features.sidebar.tabs');
|
||||
this.contentMetadata = this.loadContentMetadata(config);
|
||||
@@ -352,16 +344,12 @@ export class AppExtensionService implements RuleContext {
|
||||
};
|
||||
}
|
||||
|
||||
getCreateActions(): Observable<Array<ContentActionRef>> {
|
||||
return this._createActions.pipe(
|
||||
map((createActions) =>
|
||||
createActions
|
||||
.filter((action) => this.filterVisible(action))
|
||||
.map((action) => this.copyAction(action))
|
||||
.map((action) => this.buildMenu(action))
|
||||
.map((action) => this.setActionDisabledFromRule(action))
|
||||
)
|
||||
);
|
||||
getCreateActions(): Array<ContentActionRef> {
|
||||
return this.createActions
|
||||
.filter((action) => this.filterVisible(action))
|
||||
.map((action) => this.copyAction(action))
|
||||
.map((action) => this.buildMenu(action))
|
||||
.map((action) => this.setActionDisabledFromRule(action));
|
||||
}
|
||||
|
||||
private buildMenu(actionRef: ContentActionRef): ContentActionRef {
|
||||
@@ -400,58 +388,48 @@ export class AppExtensionService implements RuleContext {
|
||||
.reduce(reduceSeparators, []);
|
||||
}
|
||||
|
||||
getAllowedSidebarActions(): Observable<Array<ContentActionRef>> {
|
||||
return this._sidebarActions.pipe(map((sidebarActions) => this.getAllowedActions(sidebarActions)));
|
||||
getAllowedSidebarActions(): Array<ContentActionRef> {
|
||||
return this.getAllowedActions(this.sidebarActions);
|
||||
}
|
||||
|
||||
getAllowedToolbarActions(): Observable<Array<ContentActionRef>> {
|
||||
return this._toolbarActions.pipe(map((toolbarActions) => this.getAllowedActions(toolbarActions)));
|
||||
getAllowedToolbarActions(): Array<ContentActionRef> {
|
||||
return this.getAllowedActions(this.toolbarActions);
|
||||
}
|
||||
|
||||
getViewerToolbarActions(): Observable<Array<ContentActionRef>> {
|
||||
return this._viewerToolbarActions.pipe(map((viewerToolbarActions) => this.getAllowedActions(viewerToolbarActions)));
|
||||
getViewerToolbarActions(): Array<ContentActionRef> {
|
||||
return this.getAllowedActions(this.viewerToolbarActions);
|
||||
}
|
||||
|
||||
getOpenWithActions(): Observable<Array<ContentActionRef>> {
|
||||
return this._openWithActions.pipe(map((openWithActions) => this.getAllowedActions(openWithActions)));
|
||||
getSharedLinkViewerToolbarActions(): Array<ContentActionRef> {
|
||||
return this.getAllowedActions(this.sharedLinkViewerToolbarActions);
|
||||
}
|
||||
|
||||
getSharedLinkViewerToolbarActions(): Observable<Array<ContentActionRef>> {
|
||||
return this._sharedLinkViewerToolbarActions.pipe(
|
||||
map((sharedLinkViewerToolbarActions) => (!this.selection.isEmpty ? this.getAllowedActions(sharedLinkViewerToolbarActions) : []))
|
||||
);
|
||||
getHeaderActions(): Array<ContentActionRef> {
|
||||
return this.headerActions
|
||||
.filter((action) => this.filterVisible(action))
|
||||
.map((action) => {
|
||||
if (action.type === ContentActionType.menu) {
|
||||
const copy = this.copyAction(action);
|
||||
if (copy.children && copy.children.length > 0) {
|
||||
copy.children = copy.children
|
||||
.filter((childAction) => this.filterVisible(childAction))
|
||||
.sort(sortByOrder)
|
||||
.reduce(reduceEmptyMenus, [])
|
||||
.reduce(reduceSeparators, []);
|
||||
}
|
||||
return copy;
|
||||
}
|
||||
|
||||
return action;
|
||||
})
|
||||
.map((action) => this.setActionDisabledFromRule(action))
|
||||
.sort(sortByOrder)
|
||||
.reduce(reduceEmptyMenus, [])
|
||||
.reduce(reduceSeparators, []);
|
||||
}
|
||||
|
||||
getHeaderActions(): Observable<Array<ContentActionRef>> {
|
||||
return this._headerActions.pipe(
|
||||
map((headerActions) =>
|
||||
headerActions
|
||||
.filter((action) => this.filterVisible(action))
|
||||
.map((action) => {
|
||||
if (action.type === ContentActionType.menu) {
|
||||
const copy = this.copyAction(action);
|
||||
if (copy.children && copy.children.length > 0) {
|
||||
copy.children = copy.children
|
||||
.filter((childAction) => this.filterVisible(childAction))
|
||||
.sort(sortByOrder)
|
||||
.reduce(reduceEmptyMenus, [])
|
||||
.reduce(reduceSeparators, []);
|
||||
}
|
||||
return copy;
|
||||
}
|
||||
|
||||
return action;
|
||||
})
|
||||
.map((action) => this.setActionDisabledFromRule(action))
|
||||
.sort(sortByOrder)
|
||||
.reduce(reduceEmptyMenus, [])
|
||||
.reduce(reduceSeparators, [])
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
getAllowedContextMenuActions(): Observable<Array<ContentActionRef>> {
|
||||
return this._contextMenuActions.pipe(map((contextMenuActions) => (!this.selection.isEmpty ? this.getAllowedActions(contextMenuActions) : [])));
|
||||
getAllowedContextMenuActions(): Array<ContentActionRef> {
|
||||
return this.getAllowedActions(this.contextMenuActions);
|
||||
}
|
||||
|
||||
getSettingsGroups(): Array<SettingsGroupRef> {
|
||||
|
Reference in New Issue
Block a user