Fixed logic for disabling form button

This logic should be applied *only* for btn-primary
submit buttons, and not for regular buttons, which are
all of the action button in tables. At the moment this
logic breaks the table row actions, as it sets
button.disabled=true, and the 'action' value of the button
is not submitted, hence no action is performed.

Change-Id: I8e9827975656c53c7f8baff6554de1103bf4a358
Allow security group rules to have their own group as a source

Fixes bug 1012457.

Change-Id: I8f9dc6904ba4b19302551fae7455fdf41b50442e
Partial sync of jsonutils from openstack-common

This makes horizon work with recent versions of anyjson. Note that
there's another jsonutils change in openstack-common, but it requires
timeutils (which adds a dependency on the iso8601 module), so I skipped
it for now.

Changes from openstack-common:

    commit 4c9d439ef24f5afdd74aa9153aa8fc772051e6cb
    Author: Tim Daly Jr <timjr@yahoo-inc.com>
    Date:   Tue Jun 26 02:48:42 2012 +0000

        Add 'filedecoder' method to the jsonutils wrapper module.

        Fixes bug #1017765

        After version 3.3.2, the anyjson library will throw a KeyError if
        filedecoder isn't present.  The filedecoder is just like the decoder
        except it takes a file instead of a string, like json.load() instead
        of json.loads().

        Change-Id: I7bd012a7b4afa9b1ec987c3e6393cc922b5dadff

Change-Id: I912116d56e4e31ae93042929775c8d03dc4fa59e
Fix the "more" link on the images table

Fixes bug #1027206

The has_more_data() method uses the _more_images attribute, but we're
not actually setting this.

Change-Id: I07cabcce8138eab57b883017fef444a88b93b60b
Merge "Partial sync of jsonutils from openstack-common"
Merge "Allow security group rules to have their own group as a source"
Inline object creation.

Allows the creation of related objects during a workflow.
For example, this patch implements importing keypairs during
the launch instance workflow and allocating floating IP
addresses during the floating IP associate workflow.

This required several significant changes:

  * SelfHandlingForm should no long return a redirect.
    Instead, it should return either the object it
    created/acted on, or else a boolean such as True.

  * The ModalFormView now differentiates between GET
    and POST.

  * Due to the previous two items, SelfHandlingForm
    was mostly gutted (no more maybe_handle, etc.).

  * Modals now operate via a "stack" where only the
    top modal is visible at any given time and closing
    one causes the next one to become visible.

In the process of these large changes there was a large
amount of general code cleanup, especially in the javascript
code and the existing SelfHandlingForm subclasses/ModalFormView
subclasses. Many small bugs were fixed along with the cleanup.

Implements blueprint inline-object-creation.

Fixes bug 994677.
Fixes bug 1025977.
Fixes bug 1027342.
Fixes bug 1025919.

Change-Id: I1808b34cbf6f813eaedf767a6364e815c0c5e969
Allow to use SSL with self-signed certificates

SSL certificate validity checks fail with self-signed certificates used
in development or in-house environments. This patch adds a new config
value 'OPENSTACK_KEYSTONE_INSECURE_SSL', that allows to disable validity
checks done by keystoneclient, glanceclient and novaclient.

Change-Id: I4d79c1b12ad830540ca30009bd25edde10c1a055
Added custom parser for tablesorter.js

A custom parser is needed for sorting of
custom type columns like the 'Size' columns.
The 'KB', 'MB', 'GB'... values break the sorter
logic and need to be parsed manually.

The custom parser works on all 'Size'/'RAM'/'Memory'
columns. It works also on flavor-info columns like:

    `m1.tiny | 512MB RAM | 1 VCPU | 0 Disk`

The custom parser sorts these lines based on the RAM value.

Note: as seen in horizon.tables.js file, an workaround was
added as there is one more <th> in the <thead> (incl. the table_caption)
than the <td>'s in <tbody>. Thus the custom parser needs
to be added to [i-1] header, while the header itself needs [i],
as the parser is processed in <tbody>, while headers are processed
including the table_caption... This might be a problem at some time,
although currently it works...

Fixes bug 1013475

Change-Id: I793ae330c33fde4e625f96e55fdda3748c84b8c3
Merge "Added custom parser for tablesorter.js"
Added action for creating a volume from snapshot

Added a new action to create new volume from
a volume snapshot. The snapshot_id is passed to
nova volume API. The 'Create Volume' form is
reused, with the 'size' value being checked against
the snapshot size, as it cannot be less than
the snapshot size.

Fixes bug 1023740

PATCH SET 4: Added dropdown to select snapshot source
in 'Create Volume' form, when loaded from /nova/volumes/
When a snapshot is selected from the dropdown, the name
and size are pre-filled in the form (I've removed
the description copy as it is probably specific
for the reason a snapshot is being created).

PATCH SET 6: rebased with master, fixed a bug with
get_context in nova/volume/views

Change-Id: I20dd8d698f5d8481938417557e09dcdc9b891e82
Fixed the bug with images returned as generator

After a fix in Glance to support pagination,
the list of images is returned as generator,
while api.glance expects a list.

PATCHSET 2: removed optional kwargs if None
PATCHSET 3: fixed snapshot_list_detailed.

Fixed bug 1027210

Change-Id: I1c68e3625c22e591776e83c742e7b94dc893f196
Merge "Added action for creating a volume from snapshot"
admin workflow to add/edit project info and quotas

partially implements blueprint tenant-creation-workflow

Change-Id: Id3ab3593b35c5dd3e4b9e13513dd3dcbd0a79b9a
Makes data table accept mixed data types

This is the first step of making the resource browser, related to
blueprint swift-ui-improvements.

Adds three attrs to DataTableOptions:
.. attribute:: mixed_data_type

.. attribute:: data_types

.. attribute:: data_type_name

Adds attr to Column class:
.. attribute:: allowed_data_types

Adds attr to Action and LinkAction class:
.. attribute:: allowed_data_types

Changes implentation of FilterAction.
Adds MixedDataTableView.

Change-Id: I45fce5e889e92abc592f0a5abfef1abb4ce527be
Display form with initial input and error after failure to import keypair

Fixes bug 1026783.

Change-Id: Iffa255f8bae76bc055127db800ded4c4da19b580
Merge "Makes data table accept mixed data types"
Merge "Display form with initial input and error after failure to import keypair"
Fix for quota initialization scripts

when rendered in a non-modal window -
create instance/volume pages

Fixes bug 1025482

Change-Id: I0a528b89d4e207c5a11126046d9b1e3c18f2cf51
Fixed/enabled selenium tests.

Moved the tests to the horizon portion since they test core functionality.
This also required moving some of the templates, etc. that belong in horizon
to their proper homes.

Change-Id: I7d9758845b81e4b8bcf1ffaaff4f6e237b4fe9f8