Entity Browser

A standardized table component for displaying, filtering, and managing collections of entities.

Entity Browser

A standardized table component for displaying, filtering, and managing collections of entities.

Entity Browser

A standardized table component for displaying, filtering, and managing collections of entities.

Overview

Entity Browser (EBR) is a standardized table component for displaying, filtering, and managing collections of entities across Nutanix applications. It provides consistent user experience through uniform styling, behavior, and interaction patterns for listing, selecting, grouping, and performing actions on data sets.

The component supports various features including:

  • Customizable table views

  • Advanced filtering

  • Group-by functionality

  • Export capabilities

  • Row selection and batch actions

  • Client-side data joining

  • Accessibility compliance

Best Practices

Action Bar

Up to 1 primary button

  • Normal

  • Split

  • Dropdown

  • Up to 4 secondary buttons or 3 secondary + more actions

    • Normal

    • Dropdown

  • Use 10px between buttons and don’t use any separators.

  • Use the button group component when we have multiple secondary actions

  • When there’s not enough space, truncate buttons into the dropdown menu

  • More actions button can is always enabled as EBR cannot control the button’s logic from component level

  • Group related actions logically: Place frequently used actions as primary buttons and group less common actions in dropdown menus.

  • Disable actions appropriately: Ensure actions are disabled when not applicable to the current selection.

  • Use consistent action placement: Follow the standard pattern for action button positioning.

View Configuration

  • Use appropriate naming conventions: Name your EBR files using the format "<EntityNamePlural>EBR" (e.g., HostsEBR, AlertsEBR) for consistency and discoverability.

  • Configure columns thoughtfully: Only display the most critical information in default views, with additional data available through custom views.

  • Ensure column alignment: Text should be properly aligned and truncated when necessary using components like TruncatedSpan.

Filtering

Filter Bar
  • The filter bar allows users to quickly filter by queries

  • You can also select views and grouping by through the queries on the filter bar

  • Any filters added can modified through a dropdown triggered by clicking on the tag

Filter Panel
  • The filter panel is triggered through the “modify filters button”

  • Opening the filter panel closed the side panel and vice versa

  • The filters order can be customized for each application

    • Users can sort A-Z, Z-A

String
  • String filters are rule based

  • Adding multiple rules filters through any of them, not all of them Meaning it’s an “or” query

  • This is mainly used for the name column

Numeral
  • Numeral filters are used for columns like capacity or counts

  • Users can filter through pre-defined or custom ranges

Static Select
  • Static select filters are for predefined values (power states, hypervisor)

Dynamic Select
  • Dynamic select filters are for dynamic values (cluster, category)

Radio Filter
  • Radio filters are used where one value always has to be selected

  • Radio filter cannot be removed from the filter bar (tentative decision)

Best Practices
  • Implement proper filter types: Use appropriate filter controls (dropdown, text input) based on data type.

  • Provide meaningful filter options: For dropdowns, ensure values are descriptive and properly formatted.

  • Handle numeric filters correctly: Set appropriate ranges and handle positive/negative values as needed.

Table Top Area

  • The title formatting is:

    • Idle: Viewing all 24 VMs

    • Idle filtered: Viewing 6 filtered VMs

    • Selected: 6 selected out of 24 VMs

    • Selected filtered: 6 selected out of 6 filtered VMs

    • Selected filtered: 6 selected out of 6 filtered VMs

    • Filters empty: No VMs match your filter

    • Empty: There are no Templates available.

Export

Users can export either all, selected, or filtered entities in a CSV format

Pagination

  • By default, users can see 20 entities at a time, but they can choose between 10, 20, 30, 40, 50, and 60

  • Selection can only be made through one page

  • Pagination controls are hidden if the number or rows is equal or fewer to the number of rows that can be shown on one page

  • Most often, tables with pagination (such as in EBR) only use the available page height and rely on inline scrolling, so we rarely place pagination controls beneath the table. Add pagination controls below the table only if it contains a significant number of rows, is not constrained by page height, and extends beyond the fold.

Table 

Content Refresh
  • The table automatically refreshes every n seconds

  • There’s hidden button next to the title force a refresh 

Columns
  • Users can select up to 20 columns at a time

  • The name column is always locked in the first position 

  • The minimum column width is currently 100px and can be customized

  • When the all columns can't fit in the table container, horizontal scrolling is activated

  • When horizontal scrolling is activated the first column will be fixed

Responsiveness
  • The table will utilize horizontal scrolling + a fixed first column  if the minimum width of all columns adds to the table width.

  • If the table width is narrower than 480px, the first column is unfixed

Content
  • Null cells will now have a default of "-" and a hidden text of "null"

  • The null cell hidden text can be customized for different use cases

Group By

New Group By
  • Side menu

  • Can load more entities

  • Has search

  • Can add second level grouping to desired entities

  • The rendered for each group item is externalized, meaning you can add additional metadata in each menu item (group) in the form of badges and subtext.

  • Is opt-in only at the moment

Old Group By
  • Uses tabs above the table

  • Is the default experience

  • EBR can only group entities in 7 groups, for example

    • This is a technical limitation from the backend

    • For example, if a user has 10 clusters, when a user groups VMs by clusters, they will only see 7 groups.

Performance

  • Choose the appropriate UQDC: Select the right query processor (GroupsV3, ODataV4, custom) based on your API requirements.

  • Consider pagination: Configure appropriate page size to balance usability and performance.

  • Optimize client-side joins: Use joins judiciously to avoid excessive API calls.

Do's and Don'ts

Do's

  • ✅ Implement proper accessibility attributes for all interactive elements

  • ✅ Refresh the entity list after completing actions that modify entities

  • ✅ Provide clear filter labels and controls

  • ✅ Configure proper sorting for columns that support it

  • ✅ Test custom filtering and grouping thoroughly

  • ✅ Ensure consistent height and styling of table rows

  • ✅ Use descriptive names for custom views

Don'ts

  • ❌ Create tables with misaligned columns or inconsistent spacing

  • ❌ Overload the primary action area with too many buttons

  • ❌ Mix simple buttons and dropdown buttons in layouts that aren't supported

  • ❌ Allow the UI to show stale data after list actions

  • ❌ Use complex filtering mechanisms without proper UX consideration

  • ❌ Neglect to properly handle empty states or loading states

  • ❌ Create filter operators that aren't appropriate for the data type

  • ❌ Implement custom versions of functionality already provided by EBR

Help make this page more useful.

Help make this page more useful.