История записи

Отображение кастомного rowAction в истории записи

Точка расширения UEHistoryTableRowAction предназначена для отображения кастомного rowAction в таблице истории записи.

Описание UEHistoryTableRowAction:

type Resolver = (rowActionProps: RowActionsProps<AbstractVistory>) => boolean;

type IProps = {
    rowActionProps: RowActionsProps<AbstractVistory>;
    namespaceId: NamespaceId;
    entityName: string;
    etalonId: string;
}

export type UEHistoryTableRowAction = UeModuleBase<Resolver, {}> & {
    component: ComponentType<IProps>;
}

Пример реализации:

ueModuleManager.addModule('HistoryTableRowAction', {
    moduleId: 'consolidationHistoryRowAction',
    active: true,
    system: false,
    component: goToConsolidationHistoryAction,
    meta: {},
    resolver: (rowActionProps: RowActionsProps<AbstractVistory>) => {
        const vistory = rowActionProps.rowData;

        if (VistoryTypeGuards.isTransitionVistory(vistory) && VistoryTypeGuards.isMergeTransitionColumns(vistory.columns)) {
            return true;
        }

        return false;
    }
});

Доп. опции таблицы сравнения ревизий записи

Точка расширения HistoryCompareExtension позволяет встраивать в таблицу сравнения ревизий актива дополнительные опции для сравнения.

Ниже приведен пример добавления сравнения тегов, владельцев и бизнес-ролей (каждый в своем модуле) через такую точку расширения (Рисунок 1).

Сравнение ревизий актива

Рисунок 1 - Сравнение ревизий актива

Объявление типа UEGHistoryCompareExtension:

export type CompareExtensionCellProps = {
    props: CompareTableCellProps;
    historyStore: AssetHistoryStore;
    extensionStore: AbstractCompareExtensionStore;
    compareItem: ICompareItem<Asset>;
    value: string | undefined;
    hasDiff: boolean;
};

type Resolver = (store: AssetHistoryStore) => boolean;

export type UEHistoryCompareExtension = UeModuleBase<Resolver, {component: ComponentType<CompareExtensionCellProps> | undefined}> & {
    CompareExtensionStore: ClassCtor<AbstractCompareExtensionStore>;
}

Пример: добавление сравнения по бизнес-ролям.

export const brHistoryCompareExtension: UniverseUE.IUeMeta['HistoryCompareExtension'] = {
    moduleId: 'brHistoryCompareExtension',
    active: true,
    system: false,
    meta: {
        component: BRCompareCellRenderer
    },
    resolver: (store) => true,
    CompareExtensionStore: BRCompareExtensionStore
};

ueModuleManager.addModule('HistoryCompareExtension', brHistoryCompareExtension);

В точку расширения передается стор BRCompareExtensionStore для управления данными и компонент BRCompareCellRenderer для отрисовки ячейки таблицы сравнения.

Компонент принимает параметры CompareExtensionCellProps. Стор должен быть унаследован от AbstractCompareExtensionStore.