this.clone = {
permission: 'create',
canBePrimary: (selection: CdTableSelection) => selection.hasSingleSelection,
- disable: (selection: CdTableSelection) =>
- !selection.hasSingleSelection ||
- selection.first().cdExecuting ||
- !_.isUndefined(this.getCloneDisableDesc(featuresName)),
- disableDesc: () => this.getCloneDisableDesc(featuresName),
+ disable: (selection: CdTableSelection) => this.getCloneDisableDesc(selection, featuresName),
icon: Icons.clone,
name: actionLabels.CLONE
};
];
}
- getCloneDisableDesc(featuresName: string[]): string | undefined {
- if (!featuresName.includes('layering')) {
- return this.i18n('Parent image must support Layering');
+ getCloneDisableDesc(selection: CdTableSelection, featuresName: string[]): boolean | string {
+ if (selection && selection.hasSingleSelection && !selection.first().cdExecuting) {
+ if (!_.includes(featuresName, 'layering')) {
+ return this.i18n('Parent image must support Layering');
+ }
+
+ return false;
}
- return undefined;
+ return true;
}
}