RETIRED, further work has moved to Debian project infrastructure
Go to file
Tyr Johanson 6192bfd7ac Images tables uses action promises
This patch demonstrates how promises returned by actions are
used by the images table. In particular, notice how specific
action event handlers do not need to be registered. This
allows a view to support a wide variety of actions without
needing to setup a specific event listener for each type of
event the action might emit.

One could argue that if action events were standardized, they
could still be used, which is true. Consider a generic SUCCESS
event. However, promises have additional benefits and avoid
some of the problems of events.

One advantage is that promises make it easy to "chain" multiple
handlers to a single success or failure. For example, once ALL
of these actions have completed successfully, then update a status
icon. We see another example of this in the delete-action.service
which uses a promise chain to convert the data returned by the
delete-modal.service into a standardized form used by actions.

Also, promises don't require that the caller have a parent scope.
In angular, events "bubble" from child scope to the parent
scope. These scopes are effectively the view hierarchy, where
a panel contains a table, which contains rows, which contain
buttons. However, actions are not view elements lke a table or
input box. Actions, like "delete image" are a behavior
that may be invoked independently, and the code that cares about
the success or failure of that action may not be a scope parent.

Added an action-result service that provides a convenience object
for creating such results.

Co-Authored-By: Matt Borland <matt.borland@hpe.com>

Partially-Implements: blueprint angular-registry
Change-Id: Id6725664e5654a4f75508993b9640a0de80c6884
2016-05-05 14:06:18 -06:00
doc Merge "Tutorial for extending a workflow" 2016-04-29 19:15:37 +00:00
horizon Images tables uses action promises 2016-05-05 14:06:18 -06:00
openstack_dashboard Images tables uses action promises 2016-05-05 14:06:18 -06:00
releasenotes Images tables uses action promises 2016-05-05 14:06:18 -06:00
tools Merge "Attach test logs individually for each test" 2016-04-25 18:19:48 +00:00
.eslintignore bump eslint version to 1.10.3 2016-03-31 14:06:45 +00:00
.eslintrc Cleaning code to remove eslint warnings from Launch Instance 2016-03-18 14:23:48 -06:00
.gitignore Enable Angular Launch Instance by default 2016-03-03 17:40:35 +00:00
.gitreview Add .gitreview and rfc.sh. 2011-10-28 09:50:35 -04:00
.mailmap Update my mailmap 2013-10-25 14:49:23 +08:00
.pylintrc updating run_tests.sh to mimic other openstack projects, pep8, pylint, coverage 2011-08-31 14:41:36 -07:00
.testr.conf Add testr support 2015-12-10 09:45:41 +01:00
babel-django.cfg Added a django extract for .csv files 2015-09-15 21:57:42 +00:00
babel-djangojs.cfg Angular translation via babel (singular only) 2015-07-02 11:13:45 +10:00
CONTRIBUTING.rst Workflow documentation is now in infra-manual 2014-12-05 03:30:36 +00:00
HACKING.rst Eliminate mutable default arguments 2015-12-17 09:58:46 +00:00
LICENSE Initial commit 2011-01-12 13:43:31 -08:00
Makefile Unifies the project packaging into one set of modules. 2012-02-29 00:20:13 -08:00
manage.py Gate on H102 Apache 2.0 license header not found for pep8 2013-11-19 13:55:04 -05:00
MANIFEST.in Update MANIFEST for SCSS 2015-09-09 14:42:10 +01:00
package.json Merge "Update JS dev dependencies" 2016-04-15 14:41:36 +00:00
README.rst Add install guide for users and clean up README 2014-10-09 03:29:26 +09:00
requirements.txt removing httplib2 test dependency 2016-05-02 13:19:08 -06:00
run_tests.sh Sync paths in POT files with CI scripts 2016-03-11 11:40:34 +01:00
setup.cfg Removing version line from setup.cfg 2015-12-03 11:55:21 -07:00
setup.py Updated from global requirements 2015-09-19 05:37:19 +00:00
test-requirements.txt removing httplib2 test dependency 2016-05-02 13:19:08 -06:00
test-shim.js Fix bug where WEBROOT is not respected 2015-07-22 04:10:50 +00:00
tox.ini Remove PYTHONHASHSEED=0 from tox 2016-03-31 14:06:26 +00:00

Horizon (OpenStack Dashboard)

Horizon is a Django-based project aimed at providing a complete OpenStack Dashboard along with an extensible framework for building new dashboards from reusable components. The openstack_dashboard module is a reference implementation of a Django site that uses the horizon app to provide web-based interactions with the various OpenStack projects.

Using Horizon

See doc/source/topics/install.rst about how to install Horizon in your OpenStack setup. It describes the example steps and has pointers for more detailed settings and configurations.

It is also available at http://docs.openstack.org/developer/horizon/topics/install.html.

Getting Started for Developers

doc/source/quickstart.rst or http://docs.openstack.org/developer/horizon/quickstart.html describes how to setup Horizon development environment and start development.

Building Contributor Documentation

This documentation is written by contributors, for contributors.

The source is maintained in the doc/source directory using reStructuredText and built by Sphinx

  • Building Automatically:

    $ ./run_tests.sh --docs
  • Building Manually:

    $ tools/with_venv.sh sphinx-build doc/source doc/build/html

Results are in the doc/build/html directory