The purpose of this repository is to provide reusable components for the ManageIQ project. These are not general purpose components, but specific to ManageIQ, however, reusable across all of ManageIQ (providers). The intention is to provide components that are reusable in various ways. Many of these components are 'Smart Components' that know how to communicate to backend endpoints(data-driven by provider) and retrieve relevant data for the component's configuration.
As we achieve greater reuse, the idea is to move more and more components to this repository. Creating a repository for smart reusable components (specific to a domain) across providers.
- Separate git repository from ManageIQ
- Components communicate via REST with ManageIQ API
- Maintain routing inside ManageIQ (routes.rb)
- Angular 1.5+ (soon to be Angular 2.x)
- Typescript
- Webpack
- Npm Libraries
- Bower (soon to be removed and replaced with npm/yarn)
We are recommending Angular 1.5 Components instead of Angular Directives for better compatibility and easier upgrade to Angular 2.0.
For a great overview of using Angular 1.5.x Components please see: NG-Conf 2016: Components, Components, Components!...and Angular 1.5 - Pete Bacon Darwin
You need to have installed Node.js >= 6 and npm >= 3 on your system.
It is recommended to use a node version manager such as n. If you have node installed then it is
just npm install -g n
and then n lts
to use the latest LTS version of node (see the doces for switching versions).
Install these node packages globally in the system
npm install -g typings bower webpack wiredep-cli typescript typescript-formatter
Install local node dependencies
npm install
To run:
npm start
To run tests:
npm t
Before submitting code, run the following command to format the code according to the tslint rules:
tsmft -r
This formats the code according to the tslint rules.
If you want to see documentation for each component, controller, filter, etc. run
npm run-script build-docs
This will generate docs from JS docs and after running npm start
this documentation will be available on localhost:4000/docs