Кастомизация отображения информационных систем¶
Отображение новых типов задач при запуске ИС¶
Точка расширения ISTaskRunButton позволяет встраивать в запуски информационных систем отображение новых типов задач.
Ниже приведен пример добавления кнопки запуска разметки и новых типов запусков через такую точку расширения (Рисунок 1).
Рисунок 1 - Запуски разметки
Объявление типа ISTaskRunButton:
type Resolver = (store: ScannerTaskExecutionStore) => boolean;
type Props = {
store: InformationSystemStore;
};
type Meta = {
extraExecutionTypes: string[];
getExtraTaskInstanceIds: (store: ScannerTaskExecutionStore) => string[];
getDetailsText: (task: TaskExecution, store: ScannerTaskExecutionStore) => string;
}
export type ISTaskRunButtonUE = UeModuleBase<Resolver, Meta> & {
component: ComponentType<Props>;
}
Пример: добавление сравнения по бизнес-ролям.
export const discoveryRunUE: UniverseUE.IUeMeta['ISTaskRunButton'] = {
moduleId: 'discoveryRunButton',
active: true,
system: false,
component: DiscoveryRunButton,
resolver: () => true,
meta: {
extraExecutionTypes: [DISCOVERER_TASK_EXECUTION_TYPE],
getExtraTaskInstanceIds: (store) => {
return store.informationSystem.scanners.getRange().map((s: Scanner) => {
return `${DISCOVERER_TASK_EXECUTION_TYPE}-${s.name.getValue()}`;
}) || [];
},
getDetailsText: (task: TaskExecution, store: ScannerTaskExecutionStore) => {
return i18n.t('module.dataDiscovery>scanRun>detailsCellText');
}
}
};
ueModuleManager.addModule('ISTaskRunButton', discoveryRunUE);
В точку расширения передается компонент для кнопки запусков в верхнюю панель DiscoveryRunButton
.
В meta
передаются дополнительные настройки для отображения запусков в таблице:
extraExecutionTypes
новые типы запуска
getExtraTaskInstanceIds
геттер для получения списка идентификаторов экземпляров задач для отображения
getDetailsText
геттер текста для ячейки 'детали' в таблице
Дополнительные настройки для сканеров в ИС¶
Точка расширения ExtraScannerConfiguration позволяет встраивать дополнительные настройки для сканеров в информационной системе.
Ниже приведен пример добавления настройки разметки данных через такую точку расширения (Рисунок 1).
Рисунок 1 - Настройка разметки данных
Объявление типа UEExtraScannerConfiguration:
type Resolver = (store: InformationSystemStore) => boolean;
type ExtraScannerConfigurationProps = {
store: InformationSystemStore;
configStore: AbstractScannerConfigStore;
scanner: Scanner;
readOnly?: boolean;
};
export type UEExtraScannerConfiguration = UeModuleBase<Resolver, {}> & {
component: ComponentType<ExtraScannerConfigurationProps>;
scannerConfigStoreCtor: ClassCtor<AbstractScannerConfigStore>;
}
Пример: добавление настройки разметки данных для сканера информационной системы.
export const domainScannerConfigurationUE: UniverseUE.IUeMeta['ExtraScannerConfiguration'] = {
moduleId: 'domainScannerConfiguration',
active: true,
system: false,
component: DomainScannerConfiguration,
scannerConfigStoreCtor: DomainScannerConfigurationStore,
resolver: () => true,
meta: {}
};
ueModuleManager.addModule('ExtraScannerConfiguration', domainScannerConfigurationUE);
В точку расширения передается хранилище DomainScannerConfigurationStore
для управления данными и визуальный компонент DomainScannerConfiguration
, который будет отображаться в настройках сканера.
Компонент принимает параметры ExtraScannerConfigurationProps
. Хранилище должно быть унаследовано от AbstractScannerConfigStore
.