-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Meta - is a way to describe form tree abstractively without any implementation or rendering details. It is a classic JSON tree structure that is fosusing on data form relations inside form rather than rendering details. We do not use classic html markup to describe form due to following reasons:
- we do not want focus on rendering details
- html markup is hard to parse to find out data relations and hard to describe this relations using 'data-' attributes only
- we want have abstract form declaration and have freedom to select form renderers that may use its owm form generation engine, e.g. ExtJS, Polymer, React.
- we want to live is REST word so JSON/XML data formats is more preffered to our needs
- we do not want limitation is using just HTML markup on our devices
As we focus on data relations but not rendering details all our components may be divided into groups:
- simple data components to work with primitive values or objects
- collection data components to work with collection of values
- dictionary data components to work with objects from predefined list
- containers to aggregate other controls
- forms to aggregate all controls in one logical container
All components which works with data should support next features:
- declare base validation rules and allow to extend validation logic using Validation engine
- declare filtration rules
Different engines are using together to create user-friendly controls and apply user-specific behaviors to this controls. Also using engines as additional services (or microservices) allow reuse dependency injection practices to attach specific engines per specific user needs.
System should support at least next set of engines:
- Component UI engine
- Component Validation engine
- Component Action engine
- Component Dynamic engine
- Component Workflow engine
- Component Behavior engine
System should support engine overriding, configuration or run-time engine instantiation to allow powerful customization.