Right panel for discovery services on the system configuration page. Shows a list of current discovery services and allows creating a new service or editing or deleting an existing service.

Hierarchy (View Summary)

Constructors

Properties

AdditionalContent?: new (
    props: AdditionalContentProps<
        DiscoveryServicesData,
        DiscoveryServiceData,
    >,
) => Component<
    AdditionalContentProps<DiscoveryServicesData, DiscoveryServiceData>,
    any,
>
adminLevel?: number
context: { admin: default }

If using the new style context, re-declare this in your class to be the React.ContextType of your static contextType. Should be used with type annotation or static contextType.

static contextType = MyContext
// For TS pre-3.7:
context!: React.ContextType<typeof MyContext>
// For TS 3.7 and above:
declare context: React.ContextType<typeof MyContext>
EditForm: typeof DiscoveryServiceEditForm = DiscoveryServiceEditForm
extraFormKey?: string
ExtraFormSection?: new (
    props: ExtraFormSectionProps<
        DiscoveryServicesData,
        DiscoveryServiceData,
    >,
) => Component<
    ExtraFormSectionProps<DiscoveryServicesData, DiscoveryServiceData>,
    any,
>
identifierKey: string = "id"
itemTypeName: string = "discovery service"
labelKey: string = "name"
limitOne: boolean = false
links?: { [key: string]: Element }
listDataKey: string = "discovery_services"
props: Readonly<DiscoveryServicesProps> & Readonly<{ children?: ReactNode }>
refs: { [key: string]: ReactInstance }
state: EditableConfigListState = ...
urlBase: string = "/admin/web/config/discovery/"
childContextTypes: ValidationMap<any> = ...
contextType?: Context<any>

If set, this.context will be set at runtime to the current value of the given Context.

Usage:

type MyContext = number
const Ctx = React.createContext<MyContext>(0)

class Foo extends React.Component {
static contextType = Ctx
context!: React.ContextType<typeof Ctx>
render () {
return <>My context's value: {this.context}</>;
}
}
contextTypes: { admin: Validator<object> } = ...

Methods

  • canCreate Does this service have the ability to create a new item? The default is true but the logic can be overridden by other classes that inherit GenericEditableConfigList. For example, a class would only want to create a new item if the admin is a system admin.

    Returns boolean

  • Catches exceptions generated in descendant components. Unhandled exceptions will cause the entire component tree to unmount.

    Parameters

    • error: Error
    • errorInfo: ErrorInfo

    Returns void

  • Called immediately after updating occurs. Not called for the initial render.

    The snapshot is only present if getSnapshotBeforeUpdate is present and returns non-null.

    Parameters

    Returns void

  • Called immediately before a component is destroyed. Perform any necessary cleanup in this method, such as cancelled network requests, or cleaning up any DOM elements created in componentDidMount.

    Returns void

  • Parameters

    • Optionalcallback: () => void

    Returns void

  • Returns the full list of libraries known to the server, used to resolve short names to display names and UUIDs for the associated-items panel.

    The base implementation accesses data.allLibraries via an any cast because the generic T is not constrained to include that field (e.g. LibrariesData does not have it). Subclasses whose data type declares allLibraries (e.g. Collections, IndividualAdmins) should override this method with a type-safe accessor to avoid the cast.

    Returns LibraryData[]

  • Returns the list of display entries to show in the associated-items panel for a given item, or undefined if the panel does not apply to this item.

    Return semantics (used by renderLi to drive toggle visibility):

    • undefined → the feature does not apply; no toggle is rendered.
    • [] → the feature applies but there are no associations; a disabled toggle is rendered.
    • […entries] → associations exist; an enabled toggle is rendered.

    The base implementation reads the item's libraries field (an array of { short_name } objects) and resolves each entry against getAllLibraries. Subclasses may override to supply different data sources or terminology (see DiscoveryServices.getAssociatedEntries, IndividualAdmins.getAssociatedEntries).

    Subclasses that do not support the feature should not override this method; simply ensure that the item type has no libraries field so the base implementation returns undefined for every item (see Libraries).

    Parameters

    Returns { href?: string; label: string; suffix?: string }[]

  • Runs before React applies the result of render to the document, and returns an object to be given to componentDidUpdate. Useful for saving things such as scroll position before render causes changes to it.

    Note: the presence of getSnapshotBeforeUpdate prevents any of the deprecated lifecycle events from running.

    Parameters

    Returns any

  • Type Parameters

    • K extends "expandedItems"

    Parameters

    • state:
          | EditableConfigListState
          | (
              prevState: Readonly<EditableConfigListState>,
              props: Readonly<DiscoveryServicesProps>,
          ) => EditableConfigListState | Pick<EditableConfigListState, K>
          | Pick<EditableConfigListState, K>
    • Optionalcallback: () => void

    Returns void

  • Called to determine whether the change in props and state should trigger a re-render.

    Component always returns true. PureComponent implements a shallow comparison on props and state and returns true if any props or states have changed.

    If false is returned, Component#render, componentWillUpdate and componentDidUpdate will not be called.

    Parameters

    Returns boolean