
* Adds a PanelGroup class and slightly reworks the way panel ordering is handled to fix bug 963550. * Adds the option to load a python module containing site customizations after the site is fully initialized, but before the URLConf is dynamically constructed. Fixes bug 965839. Change-Id: Idc5358f2db6751494bcdfc382ec3bb6af65199b9
2.7 KiB
Customizing Horizon
Changing the Site Title
The OpenStack Dashboard Site Title branding (i.e.
"OpenStack Dashboard") can be overwritten by adding the
attribute SITE_BRANDING
to local_settings.py
with the value being the desired name.
The file local_settings.py
can be found at the Horizon
directory path of
horizon/openstack-dashboard/local/local_settings.py
.
Changing the Logo
The OpenStack Logo is pulled in through style.css
:
#splash .modal {
background: #fff url(../images/logo.png) no-repeat center 35px;
h1.brand a {
background: url(../images/logo.png) top left no-repeat;
To override the OpenStack Logo image, replace the image at the
directory path
horizon/openstack-dashboard/dashboard/static/dashboard/images/logo.png
.
The dimensions should be
width: 108px, height: 121px
.
Modifying Existing Dashboards and Panels
If you wish to alter dashboards or panels which are not part of your codebase, you can specify a custom python module which will be loaded after the entire Horizon site has been initialized, but prior to the URLconf construction. This allows for common site-customization requirements such as:
- Registering or unregistering panels from an existing dashboard.
- Changing the names of dashboards and panels.
- Re-ordering panels within a dashboard or panel group.
To specify the python module containing your modifications, add the
key customization_module
to your
settings.HORIZON_CONFIG
dictionary. The value should be a
string containing the path to your module in dotted python path
notation. Example:
HORIZON_CONFIG = {
"customization_module": "my_project.overrides"
}
Button Icons
Horizon provides hooks for customizing the look and feel of each class of button on the site. The following classes are used to identify each type of button:
- Generic Classes
-
- btn-search
- btn-delete
- btn-upload
- btn-download
- btn-create
- btn-edit
- btn-list
- btn-copy
- btn-camera
- btn-stats
- btn-enable
- btn-disable
- Floating IP-specific Classes
-
- btn-allocate
- btn-release
- btn-associate
- btn-disassociate
- Instance-specific Classes
-
- btn-launch
- btn-terminate
- btn-reboot
- btn-pause
- btn-suspend
- btn-console
- btn-log
- Volume-specific classes
-
- btn-detach
Additionally, the site-wide default button classes can be configured
by setting ACTION_CSS_CLASSES
to a tuple of the classes you
wish to appear on all action buttons in your
local_settings.py
file.