diff options
Diffstat (limited to 'doc/source/topics/customizing.rst')
-rw-r--r-- | doc/source/topics/customizing.rst | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/doc/source/topics/customizing.rst b/doc/source/topics/customizing.rst deleted file mode 100644 index 474f778e..00000000 --- a/doc/source/topics/customizing.rst +++ /dev/null @@ -1,137 +0,0 @@ -=================== -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" - } - -You can do essentially anything you like in the customization module. For -example, you could change the name of a panel:: - - from django.utils.translation import ugettext_lazy as _ - - import horizon - - # Rename "User Settings" to "User Options" - settings = horizon.get_dashboard("settings") - user_panel = settings.get_panel("user") - user_panel.name = _("User Options") - -Or get the instances panel:: - - projects_dashboard = horizon.get_dashboard("project") - instances_panel = projects_dashboard.get_panel("instances") - -And limit access to users with the Keystone Admin role:: - - permissions = list(getattr(instances_panel, 'permissions', [])) - permissions.append('openstack.roles.admin') - instances_panel.permissions = tuple(permissions) - -Or just remove it entirely:: - - projects_dashboard.unregister(instances_panel.__class__) - -.. NOTE:: - - ``my_project.overrides`` needs to be importable by the python process running - Horizon. - If your module is not installed as a system-wide python package, - you can either make it installable (e.g., with a setup.py) - or you can adjust the python path used by your WSGI server to include its location. - - Probably the easiest way is to add a ``python-path`` argument to - the ``WSGIDaemonProcess`` line in Apache's Horizon config. - - Assuming your ``my_project`` module lives in ``/opt/python/my_project``, - you'd make it look like the following:: - - WSGIDaemonProcess [... existing options ...] python-path=/opt/python - - -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. |