Skip to main content

Listing Configuration

The tSM Listing Configuration defines the structure, behavior, and additional attributes for listings within the application. It enables dynamic management of columns, profiles, and filtering settings while integrating with backend systems.

Listing Configuration Diagram

Components

1. Listing

A listing is the core definition of a tabular or hierarchical view of data. It specifies data sources, columns, filters, and profiles. []!(Basic_info_tql.png)

  • Attributes:
    • Code: Unique identifier used programmatically.
    • Name: Displayed name for the listing.
    • Description: Tooltip or detailed explanation.
    • Validity Period: Defines the start and end dates for listing availability.
    • URL: Backend REST endpoint for fetching data.
    • TQL Name: Identifier for use in TQL queries.
    • Elasticsearch Index: Specifies the index or alias used in Elasticsearch queries.
    • Microservice: Code of the microservice handling the listing's query execution.
    • Default Filters: Predefined filters applied to all records.
    • Mass Editing: Allows batch editing of records via a defined configuration.

  • Relationships:
    • A listing can contain multiple columns for defining its structure.
    • A listing can reference multiple profiles for user-specific configurations.

2. Listing Column

Defines the attributes and behavior of each column in a listing. Columns control how data is displayed, sorted, and filtered.

  • Attributes:
    • Field: Backend field name associated with the column.
    • Header: Display name in the table header.
    • Description: Tooltip for the column.
    • Width: Default column width.
    • Visibility: Controls whether the column is displayed in the table or card views.
    • Filter Settings:
      • Filter Field: Backend field used for filtering.
      • Filter Widget: UI component for filtering.
      • Filter Full-Text Search: Whether the column is included in full-text queries.
    • Sorting Settings:
      • Sort Field: Backend field used for sorting.
      • Sort Disabled: Whether sorting is disabled for this column.
    • Export Settings:
      • Export Field: Field used in exported files.
      • Export Disabled: Whether the column is excluded from exports.

  • Advanced Features:
    • Dynamic Component: Custom UI component for cell rendering.
    • Converter: Backend and frontend logic for transforming raw data into displayable values.
    • Script Field: Custom script for Elasticsearch-based calculations.
    • Privileges: Control access to read and edit the column.

3. Listing Profile

A listing profile represents a user-defined configuration of a listing, capturing selected filters, columns, and sorting preferences.

  • Attributes:
    • Code: Unique identifier for the profile.
    • Name: Displayed name of the profile.
    • Filters: JSON-based definition of filters applied to the listing.
    • Selected Columns: Specifies visible columns and their order.
    • Sort Order: Default sorting configuration.
    • Export Settings: Defines export-related preferences (e.g., format, recipients, frequency).

  • Relationships:
    • A profile is associated with one listing.
    • A profile can reference multiple selected columns.

4. Modules and Entity Types

Entity types may have specific or generic listing definitions. These definitions can vary based on the context or type of data being displayed.

  • Attributes:
    • Listing Card Widget: UI configuration for card-based views.
    • Backend URL: Source for listing data.
    • Widget: Associated UI widget type.

Use Cases

  1. Dynamic Filtering: Users can define and apply filters dynamically in the UI, with backend validation.
  2. Custom Profiles: Users can save their custom configurations (e.g., selected columns, filters) for reuse.
  3. Batch Operations: Enable mass editing and bulk actions via predefined configurations.
  4. Export and Reporting: Export data to Excel or other formats, with scheduled automated exports.
  5. Access Control: Restrict column visibility or editing based on user roles and privileges.