diff --git a/django-openstack/django_openstack/templates/django_openstack/dash/dashboard_settings.html b/django-openstack/django_openstack/templates/django_openstack/dash/dashboard_settings.html deleted file mode 100644 index 39d3272a1..000000000 --- a/django-openstack/django_openstack/templates/django_openstack/dash/dashboard_settings.html +++ /dev/null @@ -1,34 +0,0 @@ -{% extends 'django_openstack/dash/base.html' %} -{%load i18n%} - -{% block sidebar %} - {{block.super}} -{% endblock %} - -{% block page_header %} - {% url dash_instances request.user.tenant_id as refresh_link %} - {# to make searchable false, just remove it from the include statement #} - {% include "django_openstack/common/_page_header.html" with title=_("Dashboard Settings") %} -{% endblock page_header %} - -{% block dash_main %} -
-
-

{% trans "Dashboard User Interface Language"%}

-
{% csrf_token %} -

- -
-
-
 
-
-{% endblock %} diff --git a/django-openstack/django_openstack/templates/django_openstack/dash/settings.html b/django-openstack/django_openstack/templates/django_openstack/dash/settings.html new file mode 100644 index 000000000..658e2f500 --- /dev/null +++ b/django-openstack/django_openstack/templates/django_openstack/dash/settings.html @@ -0,0 +1,44 @@ +{% extends 'base.html' %} +{%load i18n%} + +{% block topbar %} + {% with current_topbar="settings" %} + {{block.super}} + {% endwith %} +{% endblock %} + + +{% block sidebar %} + {% include 'django_openstack/dash/_sidebar.html' %} +{% endblock %} + + +{% block main %} + {% block page_header %} + {% url dash_instances request.user.tenant_id as refresh_link %} + {# to make searchable false, just remove it from the include statement #} + {% include "django_openstack/common/_page_header.html" with title=_("Dashboard Settings") %} + {% endblock page_header %} + {% include "_messages.html" %} +
+
+
+

{% trans "Dashboard User Interface Language"%}

+
{% csrf_token %} +

+ +
+
+
 
+
+
+{% endblock %} diff --git a/django-openstack/django_openstack/urls.py b/django-openstack/django_openstack/urls.py index 4bb0908a1..d3b1f5053 100644 --- a/django-openstack/django_openstack/urls.py +++ b/django-openstack/django_openstack/urls.py @@ -18,14 +18,19 @@ # License for the specific language governing permissions and limitations # under the License. -from django.conf.urls.defaults import * +from django.conf.urls.defaults import patterns, url, include from django.conf import settings from django_openstack.signals import * +from django.views.generic import TemplateView urlpatterns = patterns('', url(r'^auth/', include('django_openstack.auth.urls')), url(r'^dash/', include('django_openstack.dash.urls')), url(r'^syspanel/', include('django_openstack.syspanel.urls')), + url(r'^settings/$', TemplateView.as_view( + template_name='django_openstack/dash/settings.html'), + name='dashboard_settings') + ) # import urls from modules diff --git a/openstack-dashboard/dashboard/static/dashboard/css/style.css b/openstack-dashboard/dashboard/static/dashboard/css/style.css index 372c0966d..1caf82ee5 100644 --- a/openstack-dashboard/dashboard/static/dashboard/css/style.css +++ b/openstack-dashboard/dashboard/static/dashboard/css/style.css @@ -95,8 +95,8 @@ input[type="submit"]:active { background-position: 0 -105px; } } #main a.action_link:hover, #main input.action_input:hover { - background: #6fa267; - text-decoration: none; + background: #6fa267; + text-decoration: none; } #main input.action_input { @@ -118,7 +118,7 @@ input[type="submit"]:active { background-position: 0 -105px; } min-width: 1024px; width: 100%; height: 45px; - float: left; + float: left; } h1 { @@ -135,7 +135,7 @@ h1 a{ } #main_nav { - background: #f3f8fa; + background-color: #f3f8fa; text-transform: uppercase; min-width: 800px; width: 84%; @@ -151,7 +151,7 @@ h1 a{ #main_nav li a { color: #8eacb7; - font-size: 12px; + font-size: 12px; margin: -10px 0 0 0; padding: 5px 10px 0; float: left; @@ -161,7 +161,7 @@ h1 a{ height: 33px; } #main_nav li a.active { border-top: 5px solid #8eacb7; } -#main_nav li a:hover { background: #dff2fa; } +#main_nav li a:hover { background-color: #dff2fa; } /* Tenant Dropdown */ @@ -174,7 +174,7 @@ h1 a{ height: 38px; margin: -45px 0 0 0; padding: 5px 0 0 0; - float: right; + float: right; border: 1px solid #d6e4d9; } @@ -203,11 +203,16 @@ h1 a{ #drop_btn:hover { background-color: #bfdec6; } #settings_btn { - background: url(../images/gears_small.png) no-repeat center center; + background-image: url(../images/gears_small.png); + background-repeat: no-repeat; + background-position: center top; width: 23px; height: 29px; } -#settings_btn:hover { background-color: #bfdec6; } +#settings_btn:hover { + background-color: #bfdec6; + text-decoration: none; +} a#current_tenant { background: #f3faf3; @@ -302,7 +307,7 @@ li.title h4{ } #page_header h2 span { color: #6a6a6a; } -#page_header .right { +#page_header .right { float: right; margin-right: 20px; } @@ -389,7 +394,7 @@ label.refreshOption { font-size: 20px; } -table.wide { +table.wide { width: 100%; margin: 0 0 25px 0; } @@ -494,23 +499,23 @@ td#actions input[type="submit"]:hover { text-decoration: underline; } border-radius: 5px; } -.message_box, .status_box.info { +.message_box, .status_box.info { background-color: #e8f8ff; color: #7ab6c5; border-color: #9ac7dc; } -.message_box.success { +.message_box.success { background-color: #e9ffe8; color: #7ec67b; border-color: #9edd9b; } -.message_box.warning { +.message_box.warning { background-color: #ffffe8; color: #d1b12d; border-color: #ffe37b; } -.message_box.error { +.message_box.error { background-color: #ffdbdc; color: #ff8080; border-color: #ff9a99; @@ -519,7 +524,7 @@ td#actions input[type="submit"]:hover { text-decoration: underline; } .message_box h2 { float: left; min-width: 120px; - padding: 20px 20px 20px 20px; + padding: 20px 20px 20px 20px; } .message_box.info h2 { color: #2a7380; border-color: #9ac7dc; } @@ -549,19 +554,19 @@ td#actions input[type="submit"]:hover { text-decoration: underline; } border-radius: 5px; } -.status_box.good { +.status_box.good { background-color: #e9ffe8; color: #7ec67b; border-color: #9edd9b; } -.status_box.medium { +.status_box.medium { background-color: #ffffe8; color: #eada83; border-color: #ffe37b; } -.status_box.bad { +.status_box.bad { background-color: #ffdbdc; color: #ff8080; border-color: #ff9a99; @@ -573,7 +578,7 @@ td#actions input[type="submit"]:hover { text-decoration: underline; } .status_box.medium .status { background: url(../images/status_sprite.png) no-repeat 6px -90px; } .status_box.bad .status { background: url(../images/status_sprite.png) no-repeat 6px -186px; } -.status_box.small { +.status_box.small { width: 100%; min-width: 360px; margin: 0 0 25px 0; @@ -624,7 +629,7 @@ td#actions input[type="submit"]:hover { text-decoration: underline; } text-align: center; } -.status_box p.avail span, .status_box p.used span { +.status_box p.avail span, .status_box p.used span { font-size: 10px; margin-top: -5px; text-transform: uppercase; @@ -674,7 +679,7 @@ td#actions input[type="submit"]:hover { text-decoration: underline; } font-size: 11px; } -#date_form { +#date_form { width: 502px; margin: 18px 0 25px 22px; } @@ -842,7 +847,7 @@ input:focus, textarea:focus { float: left; position: relative; border: 1px solid #d2dce1; - -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.2); + -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.2); -moz-box-shadow: 0 0 10px rgba(0,0,0,0.2); } diff --git a/openstack-dashboard/dashboard/templates/_topbar.html b/openstack-dashboard/dashboard/templates/_topbar.html index 4d367d02c..ea1729e9e 100644 --- a/openstack-dashboard/dashboard/templates/_topbar.html +++ b/openstack-dashboard/dashboard/templates/_topbar.html @@ -11,7 +11,7 @@ {% else %} NOT _LOGGED_IN_TOPBAR {% endif %} -
  •  
  • +
  •  
  • diff --git a/openstack-dashboard/dashboard/urls.py b/openstack-dashboard/dashboard/urls.py index 9aa5e6ccb..1f2c6bd9a 100644 --- a/openstack-dashboard/dashboard/urls.py +++ b/openstack-dashboard/dashboard/urls.py @@ -28,7 +28,6 @@ from django.conf import settings from django.contrib.staticfiles.urls import staticfiles_urlpatterns from django.views import generic as generic_views import django.views.i18n -from django.views.generic.simple import direct_to_template from django_openstack import urls as django_openstack_urls @@ -39,9 +38,6 @@ urlpatterns = patterns('', url(r'^syspanel/$', 'django_openstack.syspanel.views.instances.usage', name='syspanel_overview'), url(r'^i18n/', include('django.conf.urls.i18n')), - url(r'^settings/$', direct_to_template, - {'template': 'django_openstack/dash/dashboard_settings.html'}, - name='dashboard_settings') ) # Development static app and project media serving using the staticfiles app.