Skip to content

Commit

Permalink
Architecture Document updates.
Browse files Browse the repository at this point in the history
  • Loading branch information
mtho11 committed May 9, 2016
1 parent b58f6ba commit 7d6d206
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 3 deletions.
Binary file added MiQ-UI-Architecture.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
44 changes: 41 additions & 3 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,42 @@ image:https://travis-ci.org/hawkular/hawkular-ui-components.svg["Build Status",
link="https://travis-ci.org/hawkular/hawkular-ui-components"]
endif::[]

== Preliminary Angular 1.x Components for ManageIQ
== Proposed Angular 1.5.x Components for ManageIQ

Please refer to http://www.hawkular.org/docs/dev/ui-dev.html[Hawkular UI Development Docs] for further UI development details.

== Prerequisites

== Architectural Goals

* Separate git repository from ManageIQ
* Components communicate via REST with ManageIQ API
* Maintain routing inside ManageIQ(routes.rb)


== Architecture Proposal

image:MIQ-UI-Architecture.jpg[ManageIQ UI Components Architecture Proposal]

== Angular 1.5 Components

We are recommending https://docs.angularjs.org/guide/component[Angular 1.5 Components] instead of Angular Directives
for better compatibility with Angular 2.0.

The https://docs.angularjs.org/guide/component-router[Angular 2 Component Router] has been backported to Angular 1.5.x
so even component routing can be done now with Angular 1.x. [TODO: Angular 1.x Component Router should be considered
instead of UI Router (since it will not be needed with Angular 2.x) ]

For a great overview of using Angular 1.5.x Components please see: https://www.youtube
.com/watch?list=PLOETEcp3DkCq788xapkP_OU-78jhTf68j&v=AMwjDibFxno&ab_channel=ng-conf[NG-Conf 2016: Components,
Components, Components!...and Angular 1.5 - Pete Bacon Darwin]

== TODO

* i18n (should this be done in Angular or Rails?)
* Angular Events (currently angular events can only notify via the section of the DOM that the app is occupying.
Right now a functional tab (i.e., Middleware is ~= app; _this could change_]

== Development Environment

You need to have installed https://docs.npmjs.com/getting-started/installing-node[Node.js >= 5 and npm >= 3] on
your system.
Expand All @@ -32,4 +63,11 @@ To run:
[source]
npm start

_Next up Angular 2.x components running alongside Angular 1.x via ngUpgrade_
_Next up Angular 2.x components running alongside Angular 1.x via ngUpgrade. Ideally, a switch directly to Angular 2
would be most desirable. However, since there are some Angular 1 dependencies (such as
https://github.com/patternfly/angular-patternfly[Angular Patternfly]) that make it difficult to migrate directly to
Angular 2, at first. So a good intermediate compromise is to use http://blog.rangle
.io/upgrade-your-application-to-angular-2-with-ng-upgrade[Angular ngUpgrade] which allows Angular2 to run
alongside Angular 1. Angular 2 components can use Angular 1 stuff and vice versa. This makes it easy to create real
Angular 2 Components that can be downgraded to Angular 1 directives (and used in Angular 1). So the team gets
experience writing Angular 2 working in the Angular 1 runtime. _

0 comments on commit 7d6d206

Please sign in to comment.