separate horizon from openstack-dashboard

Registered by Matthias Runge on 2013-10-01

Horizon is a framework to build UIs using restful services.
OpenStack Dashbaord is just a reference implementation.

I think, we can attract more developers, when promoting horizon unrelated to OpenStack Dashboard.

Blueprint information

Status:
Complete
Approver:
David Lyle
Priority:
Medium
Drafter:
None
Direction:
Needs approval
Assignee:
Matthias Runge
Definition:
Obsolete
Series goal:
None
Implementation:
Slow progress
Milestone target:
None
Started by
David Lyle on 2014-05-30
Completed by
David Lyle on 2014-12-03

Related branches

Sprints

Whiteboard

[soulascedric 2013-10-17]
+1, especially about the ability to build mobile UI on top of Horizon framework (wether native or html5). The current Horizon framework is tight with openstack_dashboard and is probably not fitted for the addition of alternative frontends.

Mobile would be a new interface, with different use cases and new UI elements. The architecture could even be completely different: what about views built on the client side ?

Related blueprints:
- https://blueprints.launchpad.net/horizon/+spec/horizon-mobile-ui
- https://blueprints.launchpad.net/horizon/+spec/horizon-mobile-design

[2014-01-12 david-lyle] moving to i-3

[2014-01-14 mrunge] split out less and js as well

[2014-01-22 mrunge]
- split out jquery via django-jquery https://pypi.python.org/pypi/django-jquery/1.9.1
- https://pypi.python.org/pypi/django-angularjs/1.0.2
- unsure about bootstrap support here, maybe this one: https://pypi.python.org/pypi/django-bootstrap-toolkit/2.15.0
- d3: https://pypi.python.org/pypi/django-d3/3.3.11
cd horizon/static/

$ tree
.
|-- bootstrap
| `-- js
| |-- bootstrap-datepicker.js
| |-- bootstrap.js
| `-- bootstrap.min.js
`-- horizon
    |-- js
    | |-- angular
    | | |-- controllers
    | | | `-- dummy.js
    | | |-- directives
    | | | `-- forms.js
    | | `-- horizon.js
    | |-- horizon.communication.js
    | |-- horizon.conf.js
    | |-- horizon.cookies.js
    | |-- horizon.d3barchart.js
    | |-- horizon.d3linechart.js
    | |-- horizon.d3piechart.js
    | |-- horizon.firewalls.js
    | |-- horizon.formset_table.js
    | |-- horizon.forms.js
    | |-- horizon.heattop.js
    | |-- horizon.instances.js
    | |-- horizon.js
    | |-- horizon.membership.js
    | |-- horizon.messages.js
    | |-- horizon.modals.js
    | |-- horizon.networktopology.js
    | |-- horizon.quota.js
    | |-- horizon.tables_inline_edit.js
    | |-- horizon.tables.js
    | |-- horizon.tabs.js
    | |-- horizon.templates.js
    | |-- horizon.users.js
    | `-- horizon.utils.js
    |-- lib
    | |-- angular.js
    | |-- d3.v3.min.js
    | |-- hogan-2.0.0.js
    | |-- jquery
    | | |-- jquery.bootstrap.wizard.js
    | | |-- jquery.cookie.js
    | | |-- jquery.min.js
    | | |-- jquery.quicksearch.js
    | | |-- jquery.tablesorter.js
    | | `-- jquery-ui-1.9.2.custom.min.js
    | |-- jshint-2.3.0.js
    | |-- qhint.js
    | |-- qunit
    | | |-- qunit.css
    | | `-- qunit.js
    | |-- rickshaw.js
    | |-- spin.jquery.js
    | `-- spin.js
    `-- tests
        |-- jshint.js
        |-- messages.js
        |-- modals.js
        |-- tables.js
        `-- templates.js

IMHO everything not starting with horizon needs to go away from here.

[2014-02-19 | david-lyle] moving to Juno

[2014-08-19 | david-lyle] moving to Kilo

[2014-12-03 | david-lyle] Dropping. After much consideration, time and effort, the Horizon team has decided that this is no longer a priority. The potential disruption is large and overall benefit is limited to Horizon moving forward with this. The general move to an angular based implementation will gradually move Horizon away from the horizon-lib component, thus creating a separate repo to maintain is outside of the time the Horizon team has to contribute.

Thank you mrunge for all of your hard work on this effort!

(?)

Work Items

Work items:
separate javascript (bundled) libraries: TODO
create separate setup.py: TODO

Dependency tree

* Blueprints in grey have been implemented.