* 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.