docs: add docs on router config management

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
Rohit Yadav 2019-09-27 11:07:10 +05:30
parent 93389acb21
commit 3b82354210
2 changed files with 67 additions and 0 deletions

6
ui/docs/README.md Normal file
View File

@ -0,0 +1,6 @@
# Documentation
- Router [Configuration](docs/config.md)
- Custom Component
- Styling
- Testing

61
ui/docs/config.md Normal file
View File

@ -0,0 +1,61 @@
## Configuration
### Section Config Definition
A new section may be added in `src/config/section` and in `src/config/router.js`
import the new section (newconfig.js as example) configuration file and rules to
`asyncRouterMap` as:
import newconfig from '@/config/section/newconfig'
[ ... snipped ... ]
generateRouterMap(newSection),
### API
An existing or new section config/js file must export the following parameters:
- `name`: unique path in URL
- `title`: the name to be displayed in navigation and breadcrumb
- `icon`: the icon to be displayed, from AntD's icon set https://vue.ant.design/components/icon/
- `children`: (optional) array of resources sub-navigation under the parent group
- `permission`: when children are not defined, the array of API to check against
allowed auto-discovered APIs
- `columns`: when children is not defined, list of column keys
- `component`: when children is not defined, the custom component for rendering
the route view
See `src/config/section/compute.js` and `src/config/section/project.js` for example.
The children should have:
- `name`: unique path in the URL
- `title`: the name to be displayed in navigation and breadcrumb
- `icon`: the icon to be displayed, from AntD's icon set https://vue.ant.design/components/icon/
- `permission`: the array of API to check against auto-discovered APIs
- `columns`: list of column keys for list view rendering
- `component`: the custom component for rendering the route view
- `viewComponent`: the custom component for rendering a resource from the
default list view (table)
- `actions`: arrays of actions/buttons
### Action API
The actions defined for a children show up as group of buttons on the default
autogen view (that shows tables, actions etc.). Each action item should define:
- `api`: The CloudStack API for the action
- `icon`: the icon to be displayed, from AntD's icon set https://vue.ant.design/components/icon/
- `label`: The action button name label
- `listView`: (boolean) whether to show the action button in list view (table)
- `dataView`: (boolean) whether to show the action button in resource/data view
- `groupAction`: Whether the button supports groupable actions when multiple
items are selected in the table
- `options`: list of API arguments to render/show on auto-generated action form
- `hidden`: function that takes in a records and returns a boolean to control if
the action button needs to be disabled/hidden
- `component`: the custom component to render the action (in a separate route view)
- `popup`: (boolean) when true, displays any custom component in a popup modal
than in its separate route view