Forest Admin Cloud
  • What is Forest Admin?
  • How to Read This Doc?
  • Quick Start
  • Core Concepts
    • Agent
    • Data Sources
    • Collections
    • Views
    • Fields
      • Types
    • Relationships
    • Actions
    • Segments
    • Dashboards
    • Workspaces
    • Layouts
    • Roles & Permissions
    • Projects
    • Organizations
  • Native Modules
    • CRUD
    • Approval Workflows
    • Activity Logs
    • Notes
    • Inbox
  • UI Customization
    • Actions
    • Workspaces
    • Analytics
      • Metabase Integration
  • Code Customization
    • Getting Started
    • Actions
      • Context
      • Response
        • Data refresh
      • Form
        • Widgets
    • Fields
      • Filtering
      • Sorting
      • Validation
    • Relationships
    • Collections
      • Search
    • Charts
  • Security Modules
    • Roles & Permissions
    • SCIM User Provisioning
    • Single Sign On
    • Two-Factor Authentication
    • Auto-logout
    • IP Whitelisting
  • Data sources settings
    • SQL
    • MongoDB
    • Multiple Data Sources
    • Database Credentials
    • Schema Synchronization
  • Best Practices
    • Performance
Powered by GitBook
On this page
  • Emulation
  • Overriding sorting

Was this helpful?

  1. Code Customization
  2. Fields

Sorting

Last updated 1 year ago

Was this helpful?

This is the official documentation of Forest Admin Cloud.

Emulation

To quickly make a field sortable, you can use sorting emulation for lexicographical order. This method works best for collections with a few thousand records or less. It's a straightforward way to get started without much setup.


To make the code easier to read, all the code snippets below should be wrapped in the following code. Ensure you update the collection and field names as needed.

import type { Agent } from '@forestadmin/forest-cloud';
import { Schema } from '../typings';

export default function customizeAgent(agent: Agent<Schema>) {
  agent.customizeCollection('users', (collection) => {
    // Insert the code snippet here.
  });
}

Enabling sorting emulation

collection.emulateFieldSorting('fullName');

Using fields emulation can impact the performance of your admin panel. It is crucial to review to guarantee an optimal experience for your admin panel users.

Overriding sorting

With replaceFieldSorting(), you can change how records are sorted. For instance, if someone wants to sort by full name, it will sort by last name first, then by first name.

collection.replaceFieldSorting('fullName', [
  { field: 'lastName', ascending: true },
  { field: 'firstName', ascending: true },
]);

Another reason for customizing the sort is to optimize performance. For instance, sorting by creationDate can be achieved by sorting the primary key in reverse order when using auto-incrementing ids. This helps avoid adding multiple indexes and improves database performance.

collection.replaceFieldSorting('creationDate', [{ field: 'id', ascending: false }]);
best practices for fields