import * as React from 'react'; import { IFormGroup, IGenericListPageComponent, ISuperdesk, } from 'superdesk-api'; import {IKnowledgeBaseItem, IKnowledgeBaseItemBase} from './interfaces'; import {getFields} from './GetFields'; export function getAnnotationsLibraryPage(superdesk: ISuperdesk) { return class AnnotationsLibraryPage extends React.Component { render() { const {gettext} = superdesk.localization; const { getGenericListPageComponent, ListItem, ListItemColumn, ListItemActionsMenu, } = superdesk.components; const {getFormFieldPreviewComponent} = superdesk.forms; const { nameField, languageField, definitionField, } = getFields(superdesk); const formConfig: IFormGroup = { direction: 'vertical', type: 'inline', form: [ nameField, languageField, definitionField, ], }; const AnnotationsLibraryPageComponent = getGenericListPageComponent('concept_items', formConfig); const renderRow = ( key: string, item: IKnowledgeBaseItem, page: IGenericListPageComponent, ) => ( page.openPreview(item._id)}> {getFormFieldPreviewComponent(item, nameField)} {getFormFieldPreviewComponent(item, definitionField, {showAsPlainText: true})}
); return ( { const baseTemplate: Partial = { cpnat_type: 'cpnat:abstract', }; const filteredLanguage = page.getActiveFilters().language; if (filteredLanguage != null) { return { ...baseTemplate, language: filteredLanguage, }; } else if (superdesk.instance.config.default_language != null) { return { ...baseTemplate, language: superdesk.instance.config.default_language, }; } else { return baseTemplate; } }} fieldForSearch={nameField} defaultFilters={ superdesk.instance.config.default_language == null ? {} : {language: superdesk.instance.config.default_language} } /> ); } }; }