-
Notifications
You must be signed in to change notification settings - Fork 386
Description
Have you read a contributing guide?
- I have read CONTRIBUTING.md
- I have searched the existing requests and didn't find any that were similar
- I have considered creating a pull request instead and want to proceed
Clear and concise description of the problem
The current system for nested objects and local properties leads to significant UI/UX friction and a disconnect from user expectations regarding hierarchy and context.
Lack of Contextual Schema: When Object B is created inside Object A in the content area, B does not gain access to A's local properties (P local), forcing manual, hacky replication of schema context.
Collection Disconnect: The nesting relationship is not formalized, so a linked object (Ob) is not automatically included in the Collection its parent (Oa) belongs to.
Local Properties Inconsistency: The "Local" properties panel is hidden by default. Activating it requires indirect workarounds (e.g., using a Collection view or the /properties content block), which severely impacts feature discoverability.
Suggested solution
the introduction of Soft Hierarchical Schema Inheritance and Automatic Collection Inclusion based on the object nesting relationship.
A. Formalize the Parental Relationship
To enable hierarchy, we need a formalized link:
System Relation: Introduce a new, automatically managed System Relation (similar to Links
or Backlinks
) named Nested Children
to track objects created within the current object's content.
B. Property Panel Enhancement: "Inherited Context"
New Section: Add a section to the child object's properties panel: "Inherited properties".
Functionality: This section displays the local properties (P local) of the parent object (Oa ) in a read-only view, with values are only editable.
Action: Include a button next to each inherited property to "Promote to Local Property", which adds the property's schema to the child's P local section for data entry.
C. Automatic Collection Inclusion
New Option: In Collection settings, add a toggle: "Include all objects nested within current Collection object."
Result: This ensures a child objects is automatically included in its parent's Collection view, which would be different from the current workaround via enabling the Links
property in the property panel, as the newly nested object would be part of the same collection automatically.
D. UI/UX Fix for Local Properties
The "Local" properties panel should be always visible, and an easily accessible "+" button should be present to allow users to Add New Local Property directly to the object instance, removing the need for workarounds.
Alternative
I have considered manually linking objects to Collections and manually promoting properties to the Object Type. However, these are inadequate because:
Manual Linking: This defeats the purpose of an automatic graph/hierarchy model and requires repetitive work for large nested projects.
Promoting to Type: Promoting a property to the global Object Type (e.g., Page
) pollutes the schema for all pages, even those outside the specific project or context. The "Inherited Properties" is a necessary middle ground.
Additional context
No response