support "disabled" rules for Viewer extensions

This commit is contained in:
Denys Vuika
2019-03-20 15:56:54 +00:00
parent 82649955f0
commit dd02a8ddd6
2 changed files with 35 additions and 4 deletions

View File

@@ -153,10 +153,11 @@ export class AppExtensionService implements AppRuleContext {
config,
'features.viewer.shared.toolbarActions'
);
this.viewerContentExtensions = this.loader.getElements<ViewerExtensionRef>(
config,
'features.viewer.content'
);
this.viewerContentExtensions = this.loader
.getElements<ViewerExtensionRef>(config, 'features.viewer.content')
.filter(ref => !this.isViewerExtensionDisabled(ref));
this.contextMenuActions = this.loader.getContentActions(
config,
'features.contextMenu'
@@ -457,6 +458,20 @@ export class AppExtensionService implements AppRuleContext {
return true;
}
isViewerExtensionDisabled(extension: any): boolean {
if (extension) {
if (extension.disabled) {
return true;
}
if (extension.rules && extension.rules.disabled) {
return this.extensions.evaluateRule(extension.rules.disabled, this);
}
}
return false;
}
runActionById(id: string) {
const action = this.extensions.getActionById(id);
if (action) {