Skip to main content

Client-Side Experience

What end users see and experience when Design Studio is enabled.


Page Map

┌─────────────────────────────────────────────────────────────────────┐
│ V2 CLIENT PAGES │
│ │
│ ┌─────────┐ ┌───────────┐ ┌──────────┐ ┌─────────────────────┐ │
│ │ Home │ │ Dashboard │ │ Report │ │ Create | Edit | View│ │
│ │ │ │ │ │ │ │ │ │
│ │ Dropdown│ │ Tabs │ │ Tabs │ │ Form + Widgets │ │
│ │ selector│ │ per type │ │ per type│ │ + Actions │ │
│ └─────────┘ └───────────┘ └──────────┘ └─────────────────────┘ │
│ │
│ All pages: responsive │ role-based │ lazy-loaded │ cached │
└─────────────────────────────────────────────────────────────────────┘

Key Highlights

  • Responsive — layouts adapt across Desktop, Tablet, Mobile automatically
  • Role-based — users see only templates and widgets assigned to their role
  • Multiple templates — Home uses a dropdown selector; Dashboards/Reports use tabs
  • Lazy-loaded — widgets outside the viewport load on scroll for performance
  • Cached — templates cached locally for fast repeat visits
  • Dynamic — display conditions show/hide widgets in real time based on data

Home Page

What Users See

After login, users land on the Home page which renders the first available Home template. The layout includes:

  • Template Selector — If multiple Home templates are available for the user's role, a dropdown in the header lets them switch between templates
  • Widget Grid — A responsive grid layout with all configured widgets
  • Home Icon — Header shows a home icon with the active template name

Client Home Page The client-side Home page as seen by end users — showing a Custom Widget (logo), Text widget, Report Widget (Project Status), and Dashboard Widget (Ongoing Projects — Baseline Vs Actuals).

Responsive Breakpoints

DeviceColumnsBreakpoint Width
Desktop (lg)12≥ 1200px
Tablet (md)10≥ 768px
Mobile (sm)6< 768px

The grid automatically selects the appropriate layout based on the browser window width.


Type Dashboard

What Users See

When navigating to a type (e.g., "Customers"), users see the Dashboard page for that type:

  • Template Dropdown — If multiple Dashboard templates exist for the type, dropdown-style navigation appears in the header
  • Widget Dropdown — If there are multiple widgets in selected template, widgets dropdown is displayed in the header

Features

  • Dashboard widgets display data tables with columns, filters, sorting, and row actions
  • Report widgets display analytical visual or tabular reports
  • Users can interact with widgets independently (filter, sort, paginate, export)
  • Widget selection state persists across navigation within the session

Type Reports

What Users See

The reports page for a type shows all configured Report widgets in a grid layout:

  • Page Title — Report page header with type name
  • Widget Dropdown — Report widgets with full interactivity
  • Template Navigation — Multiple templates supported with selection state

Features

  • Report display formats (tables, charts, pivots — depending on configuration)
  • Filter options per report
  • Export to CSV
  • Responsive layout adaptation

Instance View

What Users See

┌─────────────────────────────────────────────────────────────────────┐
│ [← Back] TypeName / InstanceTitle [State] [Action ▼] [⋯] │
├─────────────────────────────────────────────────────────────────────┤
│ Tab 1 (Details) │ Tab 2 (RelationWidget) │ Tab 3 ... │ > │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Container A │ │ Container B │ │ Container C │ │
│ │ Field 1 │ │ Field X │ │ Widget P │ │
│ │ Field 2 │ │ Field Y │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
  • Header — shows instance title, current state, action buttons (configured via Action Settings), and a template selector dropdown when multiple templates exist
  • Tabs — each Relation Widget and Standard View widget (Attachments, Lifecycle, Messages, etc.) appears as a tab; tab labels match the widget display name
  • Form — rendered as the Details tab (or first tab); if the template has more than one Form widget, they all render stacked, top to bottom, inside that single tab — never as separate tabs; fields display in containers as configured in the Form Builder; read-only by default
  • Actions — the action button set (Edit, Create a Copy, Export, Annotate File, Geolocate, etc.) is configured per template in Action Settings;

Key Features

  • Display Conditions — containers and fields show/hide in real time based on instance data values
  • Multiple Templates — users with access to multiple View templates can switch via the template selector dropdown in the header
Smart gap filling

When containers or widgets are hidden by visibility rules or display conditions, remaining items automatically fill the gaps — no empty spaces.


Instance Create

What Users See

When creating a new instance, the Create page shows:

  • Form Layout — A template-driven form with fields arranged by the administrator
  • Custom Widgets — Any custom widgets configured for the Create context
  • Dynamic Visibility — Fields and widgets appear/disappear based on form input

User Flow

  1. User navigates to create a new instance (e.g., "Create Customer")
  2. Form starts empty; display conditions initially hide dependent container
  3. As the user fills in fields, dependent widgets/container appear dynamically
  4. On save, the user is redirected to the View page for the new instance

Instance Edit

What Users See

Similar to the Create page, but pre-populated with existing instance data:

  • Pre-filled Form — All fields populated with current values
  • Editable Fields — Only fields the user has permission to edit are enabled
  • Dynamic containers — Display conditions evaluate against current values
  • Save / Cancel — Actions at toolbar of the form

Responsive Behavior

Screen SizeLayout
DesktopFull grid layout with form alongside related widgets
TabletAdjusted grid with fewer columns, some widgets may stack
MobileVertically stacked layout for easy scrolling

Widget Rendering

Standard Widgets

Standard widgets render their content automatically based on the user context:

WidgetWhat the User Sees
TasksA list of tasks assigned to the user with status, due date, and actions
My MessagesInbox-style message list with sender, subject, and timestamp
Recently Updated ItemsA list of items the user recently created or modified
Activity LogA timeline of system events and user actions
Rich TextFormatted content (HTML) as designed by the administrator
TextStyled text block with custom font, color, and alignment
SeparatorA horizontal or vertical line dividing containers
Dynamic FormAn embedded interactive form

Type Widgets (Dashboard & Report)

These widgets display live data based on their Type Widget configuration:

  • Columns — Configured columns from the Type Widget appear as table headers
  • Filters — Users can filter data using configured filter controls
  • Sorting — Click column headers to sort (if enabled)
  • Actions — Row-level actions (like Navigate, Edit, Delete) appear on hover or click
  • Bulk Actions — Multi-select rows and apply batch operations
  • Toolbar — Export, Print, Refresh, and other toolbar buttons (if configured)
  • Pagination — Large data sets are paginated for performance

Custom Widgets

Custom widgets render their developer-defined UI. The page context provided depends on placement:

ContextData Available
HomeWidget name, display name
CreateType name, form state
EditType name, instance ID, form state
ViewType name, instance ID, full instance data

Role-Based Personalization

User Request → Template Filtering (role match?) → Widget Filtering (role match?) → Gap Filling → Render
LayerWhat Happens
Template FilteringOnly templates matching user’s roles are shown
Widget FilteringWithin visible template, only matching widgets render
Gap FillingHidden widgets’ space redistributed to visible ones
No Empty PagesIf no templates match, appropriate message displayed

Example Scenario

Consider a Home page with two templates:

Template A (Visibility: Managers, Executives)

  • Dashboard Widget: "Revenue Overview"
  • Dashboard Widget: "Team Performance"
  • Tasks Widget

Template B (Visibility: Everyone)

  • Tasks Widget
  • My Messages Widget
  • Recently Updated Items Widget

A user with the Manager role will see Template A as their default, with the option to switch to Template B. A regular user without the Manager role will only see Template B.


Performance Optimizations

The V2 layout system includes several performance features:

OptimizationDescription
Lazy RenderingWidgets outside the viewport + a 2-row buffer are not rendered until scrolled into view
LocalStorage CachingTemplate configurations are cached locally with modification timestamps
Session CachingSelected template and widget state persists within the session
Layout RedistributionHidden widgets' space is reclaimed without layout shifts
Proportional ResizingDevice breakpoint changes recalculate layouts efficiently

Next Steps