Skip to content

Commit 72fa70f

Browse files
docs: update CHANGELOG.md and ROADMAP.md with new features
- Add entries for grid list mode, Power Apps detail view, MetadataFormDialog number/boolean types, icon resolver unification, and metadataConverters - Update ROADMAP P1.16 section with new capabilities Agent-Logs-Url: https://github.com/objectstack-ai/objectui/sessions/e40e09cf-a76e-4479-a267-2b75d2430a31 Co-authored-by: xuyushun441-sys <255036401+xuyushun441-sys@users.noreply.github.com>
1 parent 5379730 commit 72fa70f

2 files changed

Lines changed: 33 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Added
1111

12+
- **Grid list mode for MetadataManagerPage** (`@object-ui/console`): MetadataManagerPage now supports `listMode: 'grid' | 'table'` configuration via the metadata type registry. When set, items are rendered in a professional table layout with column headers, sortable rows, and inline action buttons — matching the Power Apps table listing UX. The `report` type is configured to use grid mode by default.
13+
14+
- **Enhanced Object Detail View (Power Apps alignment)** (`@object-ui/console`): ObjectDetailView now includes dedicated sections beyond the existing Object Properties and Fields:
15+
- **Relationships section**: Displays all relationships with type badges (one-to-many, many-to-one), related object names, and foreign key info. Shows empty state message when no relationships are defined.
16+
- **Keys section**: Automatically extracts and displays primary keys, unique keys, and external ID fields from the object's field metadata.
17+
- **Data Experience section**: Placeholder cards for Forms, Views, and Dashboards design capabilities — preparing the UI structure for future implementation.
18+
19+
- **Number and boolean field types in MetadataFormDialog** (`@object-ui/console`): Extended `MetadataFormFieldDef.type` to support `'number'` (renders HTML number input) and `'boolean'` (renders a Shadcn Switch toggle with Yes/No label). All existing field types (`text`, `textarea`, `select`) continue to work unchanged.
20+
21+
- **Shared metadata converters utility** (`@object-ui/console`): Extracted `toObjectDefinition()` and `toFieldDefinition()` from ObjectManagerPage into a shared `utils/metadataConverters.ts` module. These functions convert raw ObjectStack API metadata shapes to the UI types (`ObjectDefinition`, `DesignerFieldDefinition`), and can now be reused across pages.
22+
23+
- **Unified icon resolver** (`@object-ui/console`): Consolidated three duplicated `ICON_MAP` + `resolveIcon()` implementations (in MetadataManagerPage, MetadataDetailPage, SystemHubPage) into a single `getIcon()` utility from `utils/getIcon.ts`, which dynamically resolves any Lucide icon by kebab-case or PascalCase name.
24+
1225
- **Metadata Create & Edit via MetadataFormDialog** (`@object-ui/console`): New generic `MetadataFormDialog` component (`components/MetadataFormDialog.tsx`) provides a registry-driven create/edit dialog for any metadata type. Form fields are determined by the `formFields` configuration in the metadata type registry, with fallback defaults (`name`, `label`, `description`). Supports required validation, `disabledOnEdit` for immutable keys (e.g. `name`), textarea and select field types, and loading state during submission.
1326

1427
- **MetadataManagerPage CRUD enhancements** (`@object-ui/console`): Extended the generic MetadataManagerPage with "New" button in the header (opens create dialog), per-item edit buttons (opens pre-filled edit dialog), and click-to-navigate to the detail page. All mutations use `MetadataService.saveMetadataItem()` with toast feedback, loading state, and automatic list refresh.

ROADMAP.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -908,7 +908,7 @@ ObjectUI is a universal Server-Driven UI (SDUI) engine built on React + Tailwind
908908

909909
### P1.16 Object Manager & Field Designer ✅
910910

911-
> **Status:** Complete — `ObjectManager` and `FieldDesigner` components shipped in `@object-ui/plugin-designer`.
911+
> **Status:** Complete — `ObjectManager` and `FieldDesigner` components shipped in `@object-ui/plugin-designer`. Object Detail View enhanced with Power Apps-style sections.
912912
913913
Enterprise-grade visual designers for managing object definitions and configuring fields. Supports the full metadata platform workflow: define objects, configure fields with advanced properties, and maintain relationships.
914914

@@ -924,6 +924,25 @@ Enterprise-grade visual designers for managing object definitions and configurin
924924
- [x] Confirm dialog for destructive actions
925925
- [x] 18 unit tests
926926

927+
**Object Detail View (Power Apps alignment):**
928+
- [x] Dedicated Relationships section with type badges, foreign key info, and empty state
929+
- [x] Keys section auto-extracting primary keys, unique keys, and external IDs from field metadata
930+
- [x] Data Experience placeholder section (Forms, Views, Dashboards) — UI structure ready for future implementation
931+
- [x] Enhanced object properties card with separated concern sections
932+
933+
**Metadata Manager Grid Mode:**
934+
- [x] `listMode: 'grid' | 'table' | 'card'` configuration on MetadataTypeConfig
935+
- [x] Professional table rendering with column headers and action buttons in grid mode
936+
- [x] Report type configured with grid mode by default
937+
938+
**MetadataFormDialog Enhancements:**
939+
- [x] `number` field type — renders HTML number input
940+
- [x] `boolean` field type — renders Shadcn Switch toggle with Yes/No label
941+
942+
**Technical Debt Cleanup:**
943+
- [x] Unified icon resolver — consolidated 3 duplicated ICON_MAP/resolveIcon into shared `getIcon` utility
944+
- [x] Extracted `toObjectDefinition`/`toFieldDefinition` to shared `utils/metadataConverters.ts`
945+
927946
**Field Designer (`FieldDesigner`):**
928947
- [x] CRUD operations on field definitions with 27 supported field types
929948
- [x] Advanced field properties: uniqueness, default values, options/picklists, read-only, hidden, validation rules, external ID, history tracking, indexed

0 commit comments

Comments
 (0)