Options
All
  • Public
  • Public/Protected
  • All
Menu

An abstract subclass of the Collection container which defines a collection of Document instances.

abstract
param data

An array of data objects from which to create document instances

Hierarchy

Index

Constructors

Properties

apps: Application[]

An Array of application references which will be automatically updated when the collection content changes

invalidDocumentIds: Set<string> = ...

Record the set of document ids where the Document was not initialized because of invalid source data

documentName: string

The base Document type which is contained within this DocumentCollection

#dataModelSearchFieldsCache: Map<string, Set<string>> = ...

The cache of search fields for each data model

Accessors

  • get documentClass(): Function
  • A reference to the Document class definition which is contained within this DocumentCollection.

    Returns Function

  • get documentName(): any
  • inheritdoc

    Returns any

  • get name(): string
  • The Collection class name

    Returns string

Methods

  • createDocument(data: any, context?: any): Document
  • Instantiate a Document for inclusion in the Collection.

    Parameters

    • data: any

      The Document data.

    • context: any = {}

    Returns Document

  • getInvalid(id: string, [options]?: { strict: boolean }): Document
  • Obtain a temporary Document instance for a document id which currently has invalid source data.

    throws

    If strict is true and the requested ID is not in the set of invalid IDs for this collection.

    Parameters

    • id: string

      A document ID with invalid source data.

    • [options]: { strict: boolean } = {}

      Additional options to configure retrieval.

      • strict: boolean

    Returns Document

    An in-memory instance for the invalid Document

  • get(id: string, [options]?: { strict: boolean; invalid: boolean }): Document
  • Get an element from the DocumentCollection by its ID.

    throws

    If strict is true and the Document cannot be found.

    Parameters

    • id: string

      The ID of the Document to retrieve.

    • [options]: { strict: boolean; invalid: boolean } = {}

      Additional options to configure retrieval.

      • strict: boolean
      • invalid: boolean

    Returns Document

  • set(id: any, document: any): void
  • inheritdoc

    Parameters

    • id: any
    • document: any

    Returns void

  • delete(id: any): void
  • inheritdoc

    Parameters

    • id: any

    Returns void

  • render(force: any, options: any): void
  • Render any Applications associated with this DocumentCollection.

    Parameters

    • force: any
    • options: any

    Returns void

  • search(search: { query: string; filters: FieldFilter[]; exclude: string[] }): string[]
  • Find all Documents which match a given search term using a full-text search against their indexed HTML fields and their name. If filters are provided, results are filtered to only those that match the provided values.

    Parameters

    • search: { query: string; filters: FieldFilter[]; exclude: string[] }

      An object configuring the search

    Returns string[]

  • updateAll(transformation: any, condition?: Function, options?: any): Promise<Document[]>
  • Update all objects in this DocumentCollection with a provided transformation. Conditionally filter to only apply to Entities which match a certain condition.

    Parameters

    • transformation: any

      An object of data or function to apply to all matched objects

    • condition: Function = null

      A function which tests whether to target each object

    • options: any = {}

    Returns Promise<Document[]>

    An array of updated data once the operation is complete

  • _preCreateDocuments(result: any[], options: any, userId: string): void
  • Preliminary actions taken before a set of Documents in this Collection are created.

    internal

    Parameters

    • result: any[]

      An Array of created data objects

    • options: any

      Options which modified the creation operation

    • userId: string

      The ID of the User who triggered the operation

    Returns void

  • _onCreateDocuments(documents: Document[], result: any[], options: any, userId: string): void
  • Follow-up actions taken after a set of Documents in this Collection are created.

    internal

    Parameters

    • documents: Document[]

      An Array of created Documents

    • result: any[]

      An Array of created data objects

    • options: any

      Options which modified the creation operation

    • userId: string

      The ID of the User who triggered the operation

    Returns void

  • _preUpdateDocuments(result: any[], options: any, userId: string): void
  • Preliminary actions taken before a set of Documents in this Collection are updated.

    internal

    Parameters

    • result: any[]

      An Array of incremental data objects

    • options: any

      Options which modified the update operation

    • userId: string

      The ID of the User who triggered the operation

    Returns void

  • _onUpdateDocuments(documents: Document[], result: any[], options: any, userId: string): void
  • Follow-up actions taken after a set of Documents in this Collection are updated.

    internal

    Parameters

    • documents: Document[]

      An Array of updated Documents

    • result: any[]

      An Array of incremental data objects

    • options: any

      Options which modified the update operation

    • userId: string

      The ID of the User who triggered the operation

    Returns void

  • _preDeleteDocuments(result: string[], options: any, userId: string): void
  • Preliminary actions taken before a set of Documents in this Collection are deleted.

    internal

    Parameters

    • result: string[]

      An Array of document IDs being deleted

    • options: any

      Options which modified the deletion operation

    • userId: string

      The ID of the User who triggered the operation

    Returns void

  • _onDeleteDocuments(documents: Document[], result: string[], options: any, userId: string): void
  • Follow-up actions taken after a set of Documents in this Collection are deleted.

    internal

    Parameters

    • documents: Document[]

      An Array of deleted Documents

    • result: string[]

      An Array of document IDs being deleted

    • options: any

      Options which modified the deletion operation

    • userId: string

      The ID of the User who triggered the operation

    Returns void

  • _onDeleteFolder(parentFolder: Folder, deleteFolderId: string, deleteContents: boolean): string[]
  • Handle shifting documents in a deleted folder to a new parent folder.

    internal

    Parameters

    • parentFolder: Folder

      The parent folder to which documents should be shifted

    • deleteFolderId: string

      The ID of the folder being deleted

    • deleteContents: boolean

      Whether to delete the contents of the folder

    Returns string[]

    An array of document IDs to deleted

  • _initialize(): void
  • Initialize the DocumentCollection by constructing any initially provided Document instances

    Returns void

  • _getRenderContext(action: string, documents: Document[], data: any[] | string[]): { action: string; documentType: string; documents: Document[]; data: any[] | string[] }
  • Generate the render context information provided for CRUD operations.

    Parameters

    • action: string

      The CRUD operation.

    • documents: Document[]

      The documents being operated on.

    • data: any[] | string[]

      An array of creation or update objects, or an array of document IDs, depending on the operation.

    Returns { action: string; documentType: string; documents: Document[]; data: any[] | string[] }

    • action: string
    • documentType: string
    • documents: Document[]
    • data: any[] | string[]
  • getSearchableFields(documentName: string, documentSubtype?: string, isEmbedded?: boolean): Set<string>
  • Get the searchable fields for a given document or index, based on its data model

    Parameters

    • documentName: string

      The document type name

    • documentSubtype: string = ""
    • isEmbedded: boolean = false

    Returns Set<string>

    The dot-delimited property paths of searchable fields