Переглянути джерело

HUE-1535 [core] Restructure top bar

New look of the top bar
Enrico Berti 12 роки тому
батько
коміт
beb9a9a891
100 змінених файлів з 576 додано та 272 видалено
  1. 4 16
      apps/about/src/about/templates/admin_wizard.mako
  2. 40 0
      apps/about/src/about/templates/header.mako
  3. 2 0
      apps/beeswax/src/beeswax/templates/choose_delimiter.mako
  4. 2 1
      apps/beeswax/src/beeswax/templates/choose_file.mako
  5. 2 2
      apps/beeswax/src/beeswax/templates/configuration.mako
  6. 2 1
      apps/beeswax/src/beeswax/templates/create_database.mako
  7. 2 0
      apps/beeswax/src/beeswax/templates/create_table_manually.mako
  8. 2 0
      apps/beeswax/src/beeswax/templates/define_columns.mako
  9. 2 2
      apps/beeswax/src/beeswax/templates/execute.mako
  10. 2 2
      apps/beeswax/src/beeswax/templates/explain.mako
  11. 45 11
      apps/beeswax/src/beeswax/templates/layout.mako
  12. 2 2
      apps/beeswax/src/beeswax/templates/list_designs.mako
  13. 2 2
      apps/beeswax/src/beeswax/templates/list_history.mako
  14. 2 2
      apps/beeswax/src/beeswax/templates/list_trashed_designs.mako
  15. 2 2
      apps/beeswax/src/beeswax/templates/my_queries.mako
  16. 2 2
      apps/beeswax/src/beeswax/templates/parameterization.mako
  17. 2 2
      apps/beeswax/src/beeswax/templates/save_results.mako
  18. 2 2
      apps/beeswax/src/beeswax/templates/watch_results.mako
  19. 2 2
      apps/beeswax/src/beeswax/templates/watch_wait.mako
  20. 3 2
      apps/filebrowser/src/filebrowser/templates/display.mako
  21. 2 2
      apps/filebrowser/src/filebrowser/templates/edit.mako
  22. 22 0
      apps/filebrowser/src/filebrowser/templates/fb_components.mako
  23. 2 3
      apps/filebrowser/src/filebrowser/templates/listdir.mako
  24. 19 2
      apps/hbase/src/hbase/templates/app.mako
  25. 4 3
      apps/jobbrowser/src/jobbrowser/templates/attempt.mako
  26. 5 3
      apps/jobbrowser/src/jobbrowser/templates/attempt_logs.mako
  27. 4 3
      apps/jobbrowser/src/jobbrowser/templates/job.mako
  28. 3 3
      apps/jobbrowser/src/jobbrowser/templates/job_attempt_logs.mako
  29. 20 0
      apps/jobbrowser/src/jobbrowser/templates/jobbrowser_components.mako
  30. 3 2
      apps/jobbrowser/src/jobbrowser/templates/jobs.mako
  31. 4 3
      apps/jobbrowser/src/jobbrowser/templates/task.mako
  32. 2 1
      apps/jobbrowser/src/jobbrowser/templates/tasks.mako
  33. 14 0
      apps/jobbrowser/src/jobbrowser/templates/tasktracker.mako
  34. 14 2
      apps/jobbrowser/src/jobbrowser/templates/tasktrackers.mako
  35. 21 2
      apps/jobsub/src/jobsub/templates/designs.mako
  36. 1 1
      apps/jobsub/static/css/jobsub.css
  37. 1 1
      apps/metastore/src/metastore/settings.py
  38. 20 0
      apps/metastore/src/metastore/templates/components.mako
  39. 3 2
      apps/metastore/src/metastore/templates/databases.mako
  40. 3 2
      apps/metastore/src/metastore/templates/describe_partitions.mako
  41. 3 2
      apps/metastore/src/metastore/templates/describe_table.mako
  42. 3 2
      apps/metastore/src/metastore/templates/tables.mako
  43. 0 0
      apps/metastore/static/art/icon_metastore_24.png
  44. 2 2
      apps/metastore/static/css/metastore.css
  45. 1 1
      apps/oozie/src/oozie/templates/dashboard/list_oozie_bundle.mako
  46. 1 1
      apps/oozie/src/oozie/templates/dashboard/list_oozie_bundles.mako
  47. 1 1
      apps/oozie/src/oozie/templates/dashboard/list_oozie_coordinator.mako
  48. 1 1
      apps/oozie/src/oozie/templates/dashboard/list_oozie_coordinators.mako
  49. 1 1
      apps/oozie/src/oozie/templates/dashboard/list_oozie_info.mako
  50. 1 1
      apps/oozie/src/oozie/templates/dashboard/list_oozie_workflow.mako
  51. 1 1
      apps/oozie/src/oozie/templates/dashboard/list_oozie_workflow_action.mako
  52. 1 1
      apps/oozie/src/oozie/templates/dashboard/list_oozie_workflows.mako
  53. 2 2
      apps/oozie/src/oozie/templates/editor/create_bundle.mako
  54. 2 2
      apps/oozie/src/oozie/templates/editor/create_coordinator.mako
  55. 2 2
      apps/oozie/src/oozie/templates/editor/create_workflow.mako
  56. 2 2
      apps/oozie/src/oozie/templates/editor/edit_bundle.mako
  57. 2 2
      apps/oozie/src/oozie/templates/editor/edit_coordinator.mako
  58. 2 2
      apps/oozie/src/oozie/templates/editor/edit_workflow.mako
  59. 11 9
      apps/oozie/src/oozie/templates/editor/import_workflow.mako
  60. 2 2
      apps/oozie/src/oozie/templates/editor/list_bundles.mako
  61. 2 2
      apps/oozie/src/oozie/templates/editor/list_coordinators.mako
  62. 12 8
      apps/oozie/src/oozie/templates/editor/list_history.mako
  63. 12 2
      apps/oozie/src/oozie/templates/editor/list_history_record.mako
  64. 2 2
      apps/oozie/src/oozie/templates/editor/list_trashed_bundles.mako
  65. 2 2
      apps/oozie/src/oozie/templates/editor/list_trashed_coordinators.mako
  66. 2 2
      apps/oozie/src/oozie/templates/editor/list_trashed_workflows.mako
  67. 2 2
      apps/oozie/src/oozie/templates/editor/list_workflows.mako
  68. 20 11
      apps/oozie/src/oozie/templates/navigation-bar.mako
  69. 30 22
      apps/pig/src/pig/templates/app.mako
  70. 1 1
      apps/pig/static/css/pig.css
  71. 1 1
      apps/search/src/search/templates/admin_collection_facets.mako
  72. 1 1
      apps/search/src/search/templates/admin_collection_highlighting.mako
  73. 1 1
      apps/search/src/search/templates/admin_collection_properties.mako
  74. 1 1
      apps/search/src/search/templates/admin_collection_sorting.mako
  75. 1 1
      apps/search/src/search/templates/admin_collection_template.mako
  76. 1 1
      apps/search/src/search/templates/admin_collections.mako
  77. 1 1
      apps/search/src/search/templates/search.mako
  78. 0 1
      apps/search/static/css/admin.css
  79. 0 1
      apps/search/static/css/search.css
  80. 3 3
      apps/sqoop/src/sqoop/templates/app.mako
  81. 3 1
      apps/sqoop/static/css/sqoop.css
  82. 5 3
      apps/useradmin/src/useradmin/templates/add_ldap_users.mako
  83. 3 3
      apps/useradmin/src/useradmin/templates/edit_group.mako
  84. 3 3
      apps/useradmin/src/useradmin/templates/edit_permissions.mako
  85. 4 7
      apps/useradmin/src/useradmin/templates/edit_user.mako
  86. 27 10
      apps/useradmin/src/useradmin/templates/layout.mako
  87. 3 3
      apps/useradmin/src/useradmin/templates/list_groups.mako
  88. 3 3
      apps/useradmin/src/useradmin/templates/list_permissions.mako
  89. 3 3
      apps/useradmin/src/useradmin/templates/list_users.mako
  90. 9 18
      apps/useradmin/static/css/useradmin.css
  91. 3 2
      apps/zookeeper/src/zookeeper/templates/clients.mako
  92. 3 2
      apps/zookeeper/src/zookeeper/templates/create.mako
  93. 3 2
      apps/zookeeper/src/zookeeper/templates/edit.mako
  94. 19 6
      apps/zookeeper/src/zookeeper/templates/index.mako
  95. 20 1
      apps/zookeeper/src/zookeeper/templates/shared_components.mako
  96. 3 2
      apps/zookeeper/src/zookeeper/templates/tree.mako
  97. 3 2
      apps/zookeeper/src/zookeeper/templates/view.mako
  98. 8 4
      desktop/core/src/desktop/app_template/src/app_name/templates/index.mako
  99. 16 6
      desktop/core/src/desktop/app_template/src/app_name/templates/shared_components.mako
  100. 8 0
      desktop/core/src/desktop/appmanager.py

+ 4 - 16
apps/about/src/about/templates/admin_wizard.mako

@@ -18,26 +18,14 @@ from desktop.views import commonheader, commonfooter
 from django.utils.encoding import smart_unicode
 from django.utils.encoding import smart_unicode
 from django.utils.translation import ugettext as _
 from django.utils.translation import ugettext as _
 %>
 %>
+<%namespace name="header" file="header.mako" />
 
 
-${ commonheader(_('Quick Start'), "quickstart", user, "100px") | n,unicode }
-
-% if user.is_superuser:
-  <div class="row-fluid">
-    <div class="subnav subnav-fixed">
-      <div class="container-fluid">
-        <ul class="nav nav-pills">
-          <li class="active"><a href="${url("about:admin_wizard")}">${_('Quick Start')}</a></li>
-          <li><a href="${url("desktop.views.dump_config")}">${_('Configuration')}</a></li>
-          <li><a href="${url("desktop.views.log_view")}">${_('Server Logs')}</a></li>
-        </ul>
-      </div>
-    </div>
-  </div>
-% endif
+${ commonheader(_('Quick Start'), "quickstart", user) | n,unicode }
+${ header.menubar() }
 
 
 <div class="container-fluid">
 <div class="container-fluid">
   <div class="row-fluid">
   <div class="row-fluid">
-    <div class="card" style="margin-bottom: 100px;">
+    <div class="card card-small" style="margin-bottom: 100px;">
       <h2 class="card-heading simple">
       <h2 class="card-heading simple">
         % if user.is_superuser:
         % if user.is_superuser:
           ${ _('Quick Start Wizard') } -
           ${ _('Quick Start Wizard') } -

+ 40 - 0
apps/about/src/about/templates/header.mako

@@ -0,0 +1,40 @@
+## Licensed to Cloudera, Inc. under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  Cloudera, Inc. licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##     http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+<%!
+from django.utils.translation import ugettext as _
+%>
+
+<%def name="menubar()">
+  <div class="navbar navbar-inverse navbar-fixed-top">
+      <div class="navbar-inner">
+        <div class="container-fluid">
+          <div class="nav-collapse">
+            <ul class="nav">
+              <li class="currentApp">
+                <a href="/${app_name}"><img src="/static/art/icon_hue_24.png" />
+                ${ _('About Hue') }</a>
+               </li>
+              % if user.is_superuser:
+                <li class="active"><a href="${url("about:admin_wizard")}">${_('Quick Start')}</a></li>
+                <li><a href="${url("desktop.views.dump_config")}">${_('Configuration')}</a></li>
+                <li><a href="${url("desktop.views.log_view")}">${_('Server Logs')}</a></li>
+              % endif
+            </ul>
+          </div>
+        </div>
+      </div>
+  </div>
+</%def>

+ 2 - 0
apps/beeswax/src/beeswax/templates/choose_delimiter.mako

@@ -20,8 +20,10 @@ from django.utils.translation import ugettext as _
 
 
 <%namespace name="comps" file="beeswax_components.mako" />
 <%namespace name="comps" file="beeswax_components.mako" />
 <%namespace name="util" file="util.mako" />
 <%namespace name="util" file="util.mako" />
+<%namespace name="layout" file="layout.mako" />
 
 
 ${ commonheader(_('Create table from file'), 'metastore', user) | n,unicode }
 ${ commonheader(_('Create table from file'), 'metastore', user) | n,unicode }
+${ layout.metastore_menubar() }
 
 
 <div class="container-fluid">
 <div class="container-fluid">
     <div class="row-fluid">
     <div class="row-fluid">

+ 2 - 1
apps/beeswax/src/beeswax/templates/choose_file.mako

@@ -19,9 +19,10 @@ from django.utils.translation import ugettext as _
 %>
 %>
 
 
 <%namespace name="comps" file="beeswax_components.mako" />
 <%namespace name="comps" file="beeswax_components.mako" />
+<%namespace name="layout" file="layout.mako" />
 
 
 ${ commonheader(_('Create table from file'), 'metastore', user) | n,unicode }
 ${ commonheader(_('Create table from file'), 'metastore', user) | n,unicode }
-
+${ layout.metastore_menubar() }
 
 
 <div class="container-fluid">
 <div class="container-fluid">
     <div class="row-fluid">
     <div class="row-fluid">

+ 2 - 2
apps/beeswax/src/beeswax/templates/configuration.mako

@@ -21,11 +21,11 @@ from django.utils.translation import ugettext as _
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="util" file="util.mako" />
 <%namespace name="util" file="util.mako" />
 
 
-${ commonheader(_('Settings'), app_name, user, '100px') | n,unicode }
+${ commonheader(_('Settings'), app_name, user) | n,unicode }
 ${layout.menubar(section='configuration')}
 ${layout.menubar(section='configuration')}
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
+  <div class="card card-small">
 	  <h1 class="card-heading simple">${_('Settings')}</h1>
 	  <h1 class="card-heading simple">${_('Settings')}</h1>
     <div class="card-body">
     <div class="card-body">
       <p>
       <p>

+ 2 - 1
apps/beeswax/src/beeswax/templates/create_database.mako

@@ -19,9 +19,10 @@ from django.utils.translation import ugettext as _
 %>
 %>
 
 
 <%namespace name="comps" file="beeswax_components.mako" />
 <%namespace name="comps" file="beeswax_components.mako" />
+<%namespace name="layout" file="layout.mako" />
 
 
 ${ commonheader(_("Create database"), 'metastore', user) | n,unicode }
 ${ commonheader(_("Create database"), 'metastore', user) | n,unicode }
-
+${layout.metastore_menubar()}
 
 
 <div class="container-fluid">
 <div class="container-fluid">
   <div class="row-fluid">
   <div class="row-fluid">

+ 2 - 0
apps/beeswax/src/beeswax/templates/create_table_manually.mako

@@ -19,8 +19,10 @@ from django.utils.translation import ugettext as _
 %>
 %>
 
 
 <%namespace name="comps" file="beeswax_components.mako" />
 <%namespace name="comps" file="beeswax_components.mako" />
+<%namespace name="layout" file="layout.mako" />
 
 
 ${ commonheader(_("Create table manually"), 'metastore', user) | n,unicode }
 ${ commonheader(_("Create table manually"), 'metastore', user) | n,unicode }
+${ layout.metastore_menubar() }
 
 
 <div class="container-fluid">
 <div class="container-fluid">
 <div class="row-fluid">
 <div class="row-fluid">

+ 2 - 0
apps/beeswax/src/beeswax/templates/define_columns.mako

@@ -20,8 +20,10 @@ from django.utils.translation import ugettext as _
 
 
 <%namespace name="comps" file="beeswax_components.mako" />
 <%namespace name="comps" file="beeswax_components.mako" />
 <%namespace name="util" file="util.mako" />
 <%namespace name="util" file="util.mako" />
+<%namespace name="layout" file="layout.mako" />
 
 
 ${ commonheader(_('Create table from file'), 'metastore', user) | n,unicode }
 ${ commonheader(_('Create table from file'), 'metastore', user) | n,unicode }
+${ layout.metastore_menubar() }
 
 
 <div class="container-fluid">
 <div class="container-fluid">
     <div class="row-fluid">
     <div class="row-fluid">

+ 2 - 2
apps/beeswax/src/beeswax/templates/execute.mako

@@ -56,7 +56,7 @@
 </%def>
 </%def>
 
 
 
 
-${ commonheader(_('Query'), app_name, user, '100px') | n,unicode }
+${ commonheader(_('Query'), app_name, user) | n,unicode }
 ${layout.menubar(section='query')}
 ${layout.menubar(section='query')}
 
 
 <div class="container-fluid">
 <div class="container-fluid">
@@ -256,7 +256,7 @@ ${layout.menubar(section='query')}
         </div>
         </div>
 
 
         <div id="querySide" class="span9">
         <div id="querySide" class="span9">
-          <div class="card" style="margin-top: 0">
+          <div class="card card-small">
             % if on_success_url:
             % if on_success_url:
               <input type="hidden" name="on_success_url" value="${on_success_url}"/>
               <input type="hidden" name="on_success_url" value="${on_success_url}"/>
             % endif
             % endif

+ 2 - 2
apps/beeswax/src/beeswax/templates/explain.mako

@@ -22,11 +22,11 @@ from django.utils.translation import ugettext as _
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="util" file="util.mako" />
 <%namespace name="util" file="util.mako" />
 
 
-${ commonheader(_('Query Explanation'), app_name, user, '100px') | n,unicode }
+${ commonheader(_('Query Explanation'), app_name, user) | n,unicode }
 ${layout.menubar(section='saved queries')}
 ${layout.menubar(section='saved queries')}
 
 
 <div class="container-fluid" style="margin-bottom: 14px">
 <div class="container-fluid" style="margin-bottom: 14px">
-  <div class="card">
+  <div class="card card-small">
     <h1 class="card-heading simple">${_('Query Explanation:')} ${util.render_query_context(query_context)}</h1>
     <h1 class="card-heading simple">${_('Query Explanation:')} ${util.render_query_context(query_context)}</h1>
     <div class="card-body">
     <div class="card-body">
       <p>
       <p>

+ 45 - 11
apps/beeswax/src/beeswax/templates/layout.mako

@@ -28,16 +28,50 @@ def is_selected(section, matcher):
 %>
 %>
 
 
 <%def name="menubar(section='')">
 <%def name="menubar(section='')">
-<div class="subnav subnav-fixed">
-	<div class="container-fluid">
-		<ul class="nav nav-pills">
-			<li class="${is_selected(section, 'query')}"><a href="${ url(app_name + ':execute_query') }">${_('Query Editor')}</a></li>
-			<li class="${is_selected(section, 'my queries')}"><a href="${ url(app_name + ':my_queries') }">${_('My Queries')}</a></li>
-			<li class="${is_selected(section, 'saved queries')}"><a href="${ url(app_name + ':list_designs') }">${_('Saved Queries')}</a></li>
-			<li class="${is_selected(section, 'history')}"><a href="${ url(app_name + ':list_query_history') }">${_('History')}</a></li>
-			<li class="${is_selected(section, 'configuration')}"><a href="${ url(app_name + ':configuration') }">${_('Settings')}</a></li>
-		</ul>
-	</div>
-</div>
+  <div class="navbar navbar-inverse navbar-fixed-top">
+      <div class="navbar-inner">
+        <div class="container-fluid">
+          <div class="nav-collapse">
+            <ul class="nav">
+              <li class="currentApp">
+                <a href="/${app_name}">
+                % if app_name == 'impala':
+                  <img src="/impala/static/art/icon_impala_24.png" />
+                  ${ _('Impala') }
+                % else:
+                  <img src="/beeswax/static/art/icon_beeswax_24.png" />
+                  ${ _('Beeswax') }
+                % endif
+                </a>
+              </li>
+              <li class="${is_selected(section, 'query')}"><a href="${ url(app_name + ':execute_query') }">${_('Query Editor')}</a></li>
+			        <li class="${is_selected(section, 'my queries')}"><a href="${ url(app_name + ':my_queries') }">${_('My Queries')}</a></li>
+			        <li class="${is_selected(section, 'saved queries')}"><a href="${ url(app_name + ':list_designs') }">${_('Saved Queries')}</a></li>
+			        <li class="${is_selected(section, 'history')}"><a href="${ url(app_name + ':list_query_history') }">${_('History')}</a></li>
+			        <li class="${is_selected(section, 'configuration')}"><a href="${ url(app_name + ':configuration') }">${_('Settings')}</a></li>
+            </ul>
+          </div>
+        </div>
+      </div>
+  </div>
+</%def>
+
+<%def name="metastore_menubar()">
+  <div class="navbar navbar-inverse navbar-fixed-top">
+      <div class="navbar-inner">
+        <div class="container-fluid">
+          <div class="nav-collapse">
+            <ul class="nav">
+              <li class="currentApp">
+                <a href="/metastore">
+                  <img src="/metastore/static/art/icon_metastore_24.png" />
+                  ${ _('Metastore Manager') }
+                </a>
+              </li>
+            </ul>
+          </div>
+        </div>
+      </div>
+  </div>
 </%def>
 </%def>
 
 

+ 2 - 2
apps/beeswax/src/beeswax/templates/list_designs.mako

@@ -24,12 +24,12 @@
 <%namespace name="comps" file="beeswax_components.mako" />
 <%namespace name="comps" file="beeswax_components.mako" />
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="layout" file="layout.mako" />
 
 
-${ commonheader(_('Saved Queries'), app_name, user, '100px') | n,unicode }
+${ commonheader(_('Saved Queries'), app_name, user) | n,unicode }
 
 
 ${layout.menubar(section='saved queries')}
 ${layout.menubar(section='saved queries')}
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
+  <div class="card card-small">
     <h1 class="card-heading simple">${_('Saved Queries')}</h1>
     <h1 class="card-heading simple">${_('Saved Queries')}</h1>
 
 
     <%actionbar:render>
     <%actionbar:render>

+ 2 - 2
apps/beeswax/src/beeswax/templates/list_history.mako

@@ -25,7 +25,7 @@ from beeswax.views import collapse_whitespace
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="comps" file="beeswax_components.mako" />
 <%namespace name="comps" file="beeswax_components.mako" />
 
 
-${ commonheader(_('History'), app_name, user, '100px') | n,unicode }
+${ commonheader(_('History'), app_name, user) | n,unicode }
 ${ layout.menubar(section='history') }
 ${ layout.menubar(section='history') }
 
 
 <%def name="show_saved_query(design, history)">
 <%def name="show_saved_query(design, history)">
@@ -96,7 +96,7 @@ ${ layout.menubar(section='history') }
             </div>
             </div>
         </div>
         </div>
         <div class="span10">
         <div class="span10">
-          <div class="card" style="margin-top: 0">
+          <div class="card card-small">
             <h1 class="card-heading simple">${_('History')}</h1>
             <h1 class="card-heading simple">${_('History')}</h1>
 
 
             <%actionbar:render>
             <%actionbar:render>

+ 2 - 2
apps/beeswax/src/beeswax/templates/list_trashed_designs.mako

@@ -24,12 +24,12 @@
 <%namespace name="comps" file="beeswax_components.mako" />
 <%namespace name="comps" file="beeswax_components.mako" />
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="layout" file="layout.mako" />
 
 
-${ commonheader(_('Saved Queries'), app_name, user, '100px') | n,unicode }
+${ commonheader(_('Saved Queries'), app_name, user) | n,unicode }
 
 
 ${layout.menubar(section='saved queries')}
 ${layout.menubar(section='saved queries')}
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
+  <div class="card card-small">
     <h1 class="card-heading simple">${_('Trashed Queries')}</h1>
     <h1 class="card-heading simple">${_('Trashed Queries')}</h1>
 
 
     <%actionbar:render>
     <%actionbar:render>

+ 2 - 2
apps/beeswax/src/beeswax/templates/my_queries.mako

@@ -26,7 +26,7 @@ from beeswax.views import collapse_whitespace
 <%namespace name="comps" file="beeswax_components.mako" />
 <%namespace name="comps" file="beeswax_components.mako" />
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="layout" file="layout.mako" />
 
 
-${ commonheader(_('My Queries'), app_name, user, '100px') | n,unicode }
+${ commonheader(_('My Queries'), app_name, user) | n,unicode }
 ${layout.menubar(section='my queries')}
 ${layout.menubar(section='my queries')}
 
 
 <style type="text/css">
 <style type="text/css">
@@ -36,7 +36,7 @@ ${layout.menubar(section='my queries')}
 </style>
 </style>
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
+  <div class="card card-small">
     <h1 class="card-heading simple">${_('My Queries')}</h1>
     <h1 class="card-heading simple">${_('My Queries')}</h1>
 
 
     <%actionbar:render>
     <%actionbar:render>

+ 2 - 2
apps/beeswax/src/beeswax/templates/parameterization.mako

@@ -21,7 +21,7 @@ from django.utils.translation import ugettext as _
 <%namespace name="comps" file="beeswax_components.mako" />
 <%namespace name="comps" file="beeswax_components.mako" />
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="layout" file="layout.mako" />
 
 
-${ commonheader(_('Parameterize Query'), app_name, user, '100px') | n,unicode }
+${ commonheader(_('Parameterize Query'), app_name, user) | n,unicode }
 
 
 ${layout.menubar()}
 ${layout.menubar()}
 
 
@@ -35,7 +35,7 @@ ${layout.menubar()}
 </style>
 </style>
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-   <div class="card">
+   <div class="card card-small">
     <%
     <%
         if explain:
         if explain:
             action = url(app_name + ':explain_parameterized_query', design.id)
             action = url(app_name + ':explain_parameterized_query', design.id)

+ 2 - 2
apps/beeswax/src/beeswax/templates/save_results.mako

@@ -24,7 +24,7 @@ from django.utils.translation import ugettext as _
 <%namespace name="comps" file="beeswax_components.mako" />
 <%namespace name="comps" file="beeswax_components.mako" />
 <%namespace name="util" file="util.mako" />
 <%namespace name="util" file="util.mako" />
 
 
-${ commonheader(_('Create table from file'), app_name, user, '100px') | n,unicode }
+${ commonheader(_('Create table from file'), app_name, user) | n,unicode }
 ${layout.menubar(section='query')}
 ${layout.menubar(section='query')}
 
 
 <script src="/static/ext/js/knockout-min.js" type="text/javascript" charset="utf-8"></script>
 <script src="/static/ext/js/knockout-min.js" type="text/javascript" charset="utf-8"></script>
@@ -33,7 +33,7 @@ ${layout.menubar(section='query')}
 % if error_msg:
 % if error_msg:
   <h4>${error_msg}</h4>
   <h4>${error_msg}</h4>
 % endif
 % endif
-  <div class="card">
+  <div class="card card-small">
     <h1 class="card-heading simple">${_('Save Query Results')}</h1>
     <h1 class="card-heading simple">${_('Save Query Results')}</h1>
     <div class="card-body">
     <div class="card-body">
       <p>
       <p>

+ 2 - 2
apps/beeswax/src/beeswax/templates/watch_results.mako

@@ -24,7 +24,7 @@ from django.utils.translation import ugettext as _
 <%namespace name="util" file="util.mako" />
 <%namespace name="util" file="util.mako" />
 <%namespace name="comps" file="beeswax_components.mako" />
 <%namespace name="comps" file="beeswax_components.mako" />
 
 
-${ commonheader(_('Query Results'), app_name, user, '100px') | n,unicode }
+${ commonheader(_('Query Results'), app_name, user) | n,unicode }
 ${layout.menubar(section='query')}
 ${layout.menubar(section='query')}
 
 
 <style type="text/css">
 <style type="text/css">
@@ -119,7 +119,7 @@ ${layout.menubar(section='query')}
         </div>
         </div>
 
 
         <div class="span9">
         <div class="span9">
-          <div class="card" style="margin-top: 0">
+          <div class="card card-small">
             <h1 class="card-heading simple">${_('Query Results:')} ${ util.render_query_context(query_context) }</h1>
             <h1 class="card-heading simple">${_('Query Results:')} ${ util.render_query_context(query_context) }</h1>
             <div class="card-body">
             <div class="card-body">
             <p>
             <p>

+ 2 - 2
apps/beeswax/src/beeswax/templates/watch_wait.mako

@@ -22,7 +22,7 @@ from django.utils.translation import ugettext as _
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="util" file="util.mako" />
 <%namespace name="util" file="util.mako" />
 
 
-${ commonheader(_('Waiting for query...'), app_name, user, '100px') | n,unicode }
+${ commonheader(_('Waiting for query...'), app_name, user) | n,unicode }
 ${layout.menubar(section='query')}
 ${layout.menubar(section='query')}
 
 
 ## Required for unit tests
 ## Required for unit tests
@@ -63,7 +63,7 @@ ${layout.menubar(section='query')}
             </div>
             </div>
         </div>
         </div>
         <div class="span9">
         <div class="span9">
-          <div class="card" style="margin-top: 0">
+          <div class="card card-small">
             <h1 class="card-heading simple">${_('Waiting for query...')} ${util.render_query_context(query_context)}</h1>
             <h1 class="card-heading simple">${_('Waiting for query...')} ${util.render_query_context(query_context)}</h1>
             <div class="card-body">
             <div class="card-body">
               <p>
               <p>

+ 3 - 2
apps/filebrowser/src/filebrowser/templates/display.mako

@@ -29,11 +29,12 @@
 <%namespace name="fb_components" file="fb_components.mako" />
 <%namespace name="fb_components" file="fb_components.mako" />
 
 
 ${ commonheader(_('%(filename)s - File Viewer') % dict(filename=truncate(filename)), 'filebrowser', user) | n,unicode }
 ${ commonheader(_('%(filename)s - File Viewer') % dict(filename=truncate(filename)), 'filebrowser', user) | n,unicode }
+${ fb_components.menubar() }
 
 
 <div class="container-fluid">
 <div class="container-fluid">
   <div class="row-fluid">
   <div class="row-fluid">
     <div class="span2">
     <div class="span2">
-      <div class="sidebar-nav">
+      <div class="sidebar-nav" style="padding-top: 0">
         <ul class="nav nav-list">
         <ul class="nav nav-list">
           <li class="nav-header">${_('Actions')}</li>
           <li class="nav-header">${_('Actions')}</li>
           % if view['mode'] == "binary":
           % if view['mode'] == "binary":
@@ -84,7 +85,7 @@ ${ commonheader(_('%(filename)s - File Viewer') % dict(filename=truncate(filenam
       </div>
       </div>
     </div>
     </div>
     <div class="span10">
     <div class="span10">
-      <div class="card" style="margin-top: 0">
+      <div class="card card-small">
       % if breadcrumbs:
       % if breadcrumbs:
         ${fb_components.breadcrumbs(path, breadcrumbs)}
         ${fb_components.breadcrumbs(path, breadcrumbs)}
       %endif
       %endif

+ 2 - 2
apps/filebrowser/src/filebrowser/templates/edit.mako

@@ -30,12 +30,12 @@
 <%namespace name="fb_components" file="fb_components.mako" />
 <%namespace name="fb_components" file="fb_components.mako" />
 
 
 ${ commonheader(_('%(filename)s - File Viewer') % dict(filename=truncate(filename)), 'filebrowser', user) | n,unicode }
 ${ commonheader(_('%(filename)s - File Viewer') % dict(filename=truncate(filename)), 'filebrowser', user) | n,unicode }
-
+${ fb_components.menubar() }
 
 
 <div class="container-fluid">
 <div class="container-fluid">
   <div class="row-fluid">
   <div class="row-fluid">
     <div class="span12">
     <div class="span12">
-      <div class="card">
+      <div class="card card-small">
         % if breadcrumbs:
         % if breadcrumbs:
           ${fb_components.breadcrumbs(path, breadcrumbs)}
           ${fb_components.breadcrumbs(path, breadcrumbs)}
         %endif
         %endif

+ 22 - 0
apps/filebrowser/src/filebrowser/templates/fb_components.mako

@@ -58,3 +58,25 @@ from django.utils.translation import ugettext as _
         % endif
         % endif
     </ul>
     </ul>
 </%def>
 </%def>
+
+
+<%def name="menubar()">
+  <div class="navbar navbar-inverse navbar-fixed-top nokids">
+      <div class="navbar-inner">
+        <div class="container-fluid">
+          <div class="nav-collapse">
+            <ul class="nav">
+              <li class="currentApp">
+                <a href="/${app_name}">
+                  <img src="/filebrowser/static/art/icon_filebrowser_24.png" />
+                  ${ _('File Browser') }
+                </a>
+              </li>
+            </ul>
+          </div>
+        </div>
+      </div>
+  </div>
+</%def>
+
+

+ 2 - 3
apps/filebrowser/src/filebrowser/templates/listdir.mako

@@ -25,12 +25,11 @@ from django.utils.translation import ugettext as _
 <%namespace name="fb_components" file="fb_components.mako" />
 <%namespace name="fb_components" file="fb_components.mako" />
 
 
 ${ commonheader(None, 'filebrowser', user) | n,unicode }
 ${ commonheader(None, 'filebrowser', user) | n,unicode }
+${ fb_components.menubar() }
 
 
 <div class="container-fluid">
 <div class="container-fluid">
 
 
-  <div class="card">
-    <h1 class="card-heading simple">${_('File Browser')}</h1>
-
+  <div class="card card-small">
     <div class="actionbar">
     <div class="actionbar">
     <%actionbar:render>
     <%actionbar:render>
         <%def name="search()">
         <%def name="search()">

+ 19 - 2
apps/hbase/src/hbase/templates/app.mako

@@ -24,6 +24,23 @@ ${ commonheader(None, "hbase", user) | n,unicode }
 
 
 <link href="/hbase/static/css/hbase.css" rel="stylesheet" type="text/css" />
 <link href="/hbase/static/css/hbase.css" rel="stylesheet" type="text/css" />
 
 
+<div class="navbar navbar-inverse navbar-fixed-top nokids">
+    <div class="navbar-inner">
+    <div class="container-fluid">
+      <div class="nav-collapse">
+        <ul class="nav">
+          <li class="currentApp">
+            <a href="/${app_name}">
+              <img src="/hbase/static/art/icon_24.png" />
+              ${ _('HBase Browser') }
+            </a>
+          </li>
+        </ul>
+      </div>
+    </div>
+  </div>
+</div>
+
 <%def name="datatable(datasource,rowTemplate = 'itemTemplate')">
 <%def name="datatable(datasource,rowTemplate = 'itemTemplate')">
   <table data-datasource="${datasource}" class="table table-striped table-condensed datatables tablescroller-disable">
   <table data-datasource="${datasource}" class="table table-striped table-condensed datatables tablescroller-disable">
       <thead>
       <thead>
@@ -117,10 +134,10 @@ ${ commonheader(None, "hbase", user) | n,unicode }
 </%def>
 </%def>
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
+  <div class="card card-small">
   <!-- Page Header -->
   <!-- Page Header -->
   <h1 class="card-heading simple">
   <h1 class="card-heading simple">
-    <a href="/hbase/">HBase Browser</a> - <a data-bind="text: app.cluster(), attr: { href: '#' + app.cluster() }"></a>
+    <a href="/hbase/">${_('Home')}</a> - <a data-bind="text: app.cluster(), attr: { href: '#' + app.cluster() }"></a>
     <span data-bind="visible: app.station() == 'table'">/ <a data-bind="text: app.views.tabledata.name(), attr: { href: '#' + app.cluster() + '/' + app.views.tabledata.name()}"></a></span>
     <span data-bind="visible: app.station() == 'table'">/ <a data-bind="text: app.views.tabledata.name(), attr: { href: '#' + app.cluster() + '/' + app.views.tabledata.name()}"></a></span>
     <span class="pull-right">
     <span class="pull-right">
       <span class="dropdown">
       <span class="dropdown">

+ 4 - 3
apps/jobbrowser/src/jobbrowser/templates/attempt.mako

@@ -20,13 +20,14 @@
 <%namespace name="comps" file="jobbrowser_components.mako" />
 <%namespace name="comps" file="jobbrowser_components.mako" />
 
 
 ${ commonheader(_('Task Attempt: %(attemptId)s') % dict(attemptId=attempt.attemptId_short), "jobbrowser", user) | n,unicode }
 ${ commonheader(_('Task Attempt: %(attemptId)s') % dict(attemptId=attempt.attemptId_short), "jobbrowser", user) | n,unicode }
+${ comps.menubar() }
 
 
 <link href="/jobbrowser/static/css/jobbrowser.css" rel="stylesheet">
 <link href="/jobbrowser/static/css/jobbrowser.css" rel="stylesheet">
 
 
 <div class="container-fluid">
 <div class="container-fluid">
   <div class="row-fluid">
   <div class="row-fluid">
     <div class="span2">
     <div class="span2">
-      <div class="sidebar-nav">
+      <div class="sidebar-nav" style="padding-top: 0">
         <ul class="nav nav-list">
         <ul class="nav nav-list">
           <li class="nav-header">${_('Attempt ID')}</li>
           <li class="nav-header">${_('Attempt ID')}</li>
           <li class="white hellipsify">${attempt.attemptId_short}</li>
           <li class="white hellipsify">${attempt.attemptId_short}</li>
@@ -55,8 +56,8 @@ ${ commonheader(_('Task Attempt: %(attemptId)s') % dict(attemptId=attempt.attemp
     </div>
     </div>
 
 
     <div class="span10">
     <div class="span10">
-      <div class="card" style="margin-top:0">
-        <h1 class="card-heading simple">${_('Task Attempt: %(attemptId)s - Job Browser') % dict(attemptId=attempt.attemptId_short)}</h1>
+      <div class="card card-small">
+        <h1 class="card-heading simple">${_('Task Attempt: %(attemptId)s') % dict(attemptId=attempt.attemptId_short)}</h1>
 
 
         <div class="card-body">
         <div class="card-body">
           <p>
           <p>

+ 5 - 3
apps/jobbrowser/src/jobbrowser/templates/attempt_logs.mako

@@ -20,10 +20,12 @@
 <%namespace name="comps" file="jobbrowser_components.mako" />
 <%namespace name="comps" file="jobbrowser_components.mako" />
 
 
 ${ commonheader(_('Task Attempt: %(attemptId)s') % dict(attemptId=attempt.attemptId_short), "jobbrowser", user) | n,unicode }
 ${ commonheader(_('Task Attempt: %(attemptId)s') % dict(attemptId=attempt.attemptId_short), "jobbrowser", user) | n,unicode }
+${ comps.menubar() }
+
 <div class="container-fluid">
 <div class="container-fluid">
   <div class="row-fluid">
   <div class="row-fluid">
     <div class="span2">
     <div class="span2">
-      <div class="sidebar-nav">
+      <div class="sidebar-nav" style="padding-top: 0">
         <ul class="nav nav-list">
         <ul class="nav nav-list">
           <li class="nav-header">${_('Attempt ID')}</li>
           <li class="nav-header">${_('Attempt ID')}</li>
           <li class="white">${attempt.attemptId_short}</li>
           <li class="white">${attempt.attemptId_short}</li>
@@ -50,8 +52,8 @@ ${ commonheader(_('Task Attempt: %(attemptId)s') % dict(attemptId=attempt.attemp
     </div>
     </div>
 
 
     <div class="span10">
     <div class="span10">
-      <div class="card" style="margin-top: 0">
-        <h1 class="card-heading simple">${_('Task Attempt: %(attemptId)s - Job Browser') % dict(attemptId=attempt.attemptId_short)}</h1>
+      <div class="card card-small">
+        <h1 class="card-heading simple">${_('Task Attempt: %(attemptId)s') % dict(attemptId=attempt.attemptId_short)}</h1>
         <div class="card-body">
         <div class="card-body">
           <p>
           <p>
             <ul class="nav nav-tabs">
             <ul class="nav nav-tabs">

+ 4 - 3
apps/jobbrowser/src/jobbrowser/templates/job.mako

@@ -91,6 +91,7 @@
 </%def>
 </%def>
 
 
 ${ commonheader(_('Job: %(jobId)s') % dict(jobId=job.jobId_short), "jobbrowser", user) | n,unicode }
 ${ commonheader(_('Job: %(jobId)s') % dict(jobId=job.jobId_short), "jobbrowser", user) | n,unicode }
+${ comps.menubar() }
 
 
 <link href="/jobbrowser/static/css/jobbrowser.css" rel="stylesheet">
 <link href="/jobbrowser/static/css/jobbrowser.css" rel="stylesheet">
 
 
@@ -108,7 +109,7 @@ ${ commonheader(_('Job: %(jobId)s') % dict(jobId=job.jobId_short), "jobbrowser",
 <div class="container-fluid">
 <div class="container-fluid">
   <div class="row-fluid">
   <div class="row-fluid">
     <div class="span2">
     <div class="span2">
-      <div class="sidebar-nav">
+      <div class="sidebar-nav" style="padding-top: 0">
         <ul class="nav nav-list">
         <ul class="nav nav-list">
           <li class="nav-header">${_('Job ID')}</li>
           <li class="nav-header">${_('Job ID')}</li>
           <li class="white hellipsify">${job.jobId_short}</li>
           <li class="white hellipsify">${job.jobId_short}</li>
@@ -150,8 +151,8 @@ ${ commonheader(_('Job: %(jobId)s') % dict(jobId=job.jobId_short), "jobbrowser",
       </div>
       </div>
     </div>
     </div>
     <div class="span10">
     <div class="span10">
-      <div class="card" style="margin-top:0">
-        <h1 class="card-heading simple">${_('Job: %(jobId)s - Job Browser') % dict(jobId=job.jobId_short)}</h1>
+      <div class="card card-small">
+        <h1 class="card-heading simple">${_('Job: %(jobId)s') % dict(jobId=job.jobId_short)}</h1>
           <div class="card-body">
           <div class="card-body">
             <p>
             <p>
               <ul class="nav nav-tabs">
               <ul class="nav nav-tabs">

+ 3 - 3
apps/jobbrowser/src/jobbrowser/templates/job_attempt_logs.mako

@@ -21,11 +21,12 @@
 <%namespace name="comps" file="jobbrowser_components.mako" />
 <%namespace name="comps" file="jobbrowser_components.mako" />
 
 
 ${ commonheader(_('Job Attempt: %(attempt_index)s') % {'attempt_index': attempt_index}, "jobbrowser", user) | n,unicode }
 ${ commonheader(_('Job Attempt: %(attempt_index)s') % {'attempt_index': attempt_index}, "jobbrowser", user) | n,unicode }
+${ comps.menubar() }
 
 
 <div class="container-fluid">
 <div class="container-fluid">
   <div class="row-fluid">
   <div class="row-fluid">
     <div class="span2">
     <div class="span2">
-      <div class="sidebar-nav">
+      <div class="sidebar-nav" style="padding-top: 0">
         <ul class="nav nav-list">
         <ul class="nav nav-list">
           <li class="nav-header">${ _('Attempt ID') }</li>
           <li class="nav-header">${ _('Attempt ID') }</li>
           <li class="white">${ attempt_index }</li>
           <li class="white">${ attempt_index }</li>
@@ -34,9 +35,8 @@ ${ commonheader(_('Job Attempt: %(attempt_index)s') % {'attempt_index': attempt_
     </div>
     </div>
 
 
     <div class="span10">
     <div class="span10">
-      <div class="card">
+      <div class="card card-small">
         <h1 class="card-heading simple">
         <h1 class="card-heading simple">
-          ${ _('Job Browser') } -
           ${ _('Job') } <a href="${url('jobbrowser.views.single_job', job=job.jobId)}" title="${_('View this job')}">${ job.jobId_short }</a>
           ${ _('Job') } <a href="${url('jobbrowser.views.single_job', job=job.jobId)}" title="${_('View this job')}">${ job.jobId_short }</a>
           ${ _('Attempt: %(attempt_index)s') % {'attempt_index': attempt_index} }
           ${ _('Attempt: %(attempt_index)s') % {'attempt_index': attempt_index} }
         </h1>
         </h1>

+ 20 - 0
apps/jobbrowser/src/jobbrowser/templates/jobbrowser_components.mako

@@ -226,3 +226,23 @@
     return additional_class
     return additional_class
     %>
     %>
 </%def>
 </%def>
+
+<%def name="menubar()">
+  <div class="navbar navbar-inverse navbar-fixed-top nokids">
+      <div class="navbar-inner">
+        <div class="container-fluid">
+          <div class="nav-collapse">
+            <ul class="nav">
+              <li class="currentApp">
+                <a href="/${app_name}">
+                  <img src="/jobbrowser/static/art/icon_jobbrowser_24.png" />
+                  ${ _('Job Browser') }
+                </a>
+              </li>
+            </ul>
+          </div>
+        </div>
+      </div>
+  </div>
+</%def>
+

+ 3 - 2
apps/jobbrowser/src/jobbrowser/templates/jobs.mako

@@ -20,14 +20,15 @@
   from django.utils.translation import ugettext as _
   from django.utils.translation import ugettext as _
 %>
 %>
 <%namespace name="actionbar" file="actionbar.mako" />
 <%namespace name="actionbar" file="actionbar.mako" />
+<%namespace name="components" file="jobbrowser_components.mako" />
 
 
 ${ commonheader(None, "jobbrowser", user) | n,unicode }
 ${ commonheader(None, "jobbrowser", user) | n,unicode }
+${ components.menubar() }
 
 
 <link href="/jobbrowser/static/css/jobbrowser.css" rel="stylesheet">
 <link href="/jobbrowser/static/css/jobbrowser.css" rel="stylesheet">
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
-  <h1 class="card-heading simple">${_('Job Browser')}</h1>
+  <div class="card card-small">
 
 
   <%actionbar:render>
   <%actionbar:render>
     <%def name="search()">
     <%def name="search()">

+ 4 - 3
apps/jobbrowser/src/jobbrowser/templates/task.mako

@@ -20,13 +20,14 @@
 <%namespace name="comps" file="jobbrowser_components.mako" />
 <%namespace name="comps" file="jobbrowser_components.mako" />
 
 
 ${ commonheader(_('Job Task: %(taskId)s') % dict(taskId=task.taskId_short), "jobbrowser", user) | n,unicode }
 ${ commonheader(_('Job Task: %(taskId)s') % dict(taskId=task.taskId_short), "jobbrowser", user) | n,unicode }
+${ comps.menubar() }
 
 
 <link href="/jobbrowser/static/css/jobbrowser.css" rel="stylesheet">
 <link href="/jobbrowser/static/css/jobbrowser.css" rel="stylesheet">
 
 
 <div class="container-fluid">
 <div class="container-fluid">
   <div class="row-fluid">
   <div class="row-fluid">
     <div class="span2">
     <div class="span2">
-      <div class="sidebar-nav">
+      <div class="sidebar-nav" style="padding-top: 0">
         <ul class="nav nav-list">
         <ul class="nav nav-list">
           <li class="nav-header">${_('Task ID')}</li>
           <li class="nav-header">${_('Task ID')}</li>
           <li class="white hellipsify">${task.taskId_short}</li>
           <li class="white hellipsify">${task.taskId_short}</li>
@@ -46,8 +47,8 @@ ${ commonheader(_('Job Task: %(taskId)s') % dict(taskId=task.taskId_short), "job
     </div>
     </div>
   </div>
   </div>
     <div class="span10">
     <div class="span10">
-      <div class="card" style="margin-top:0">
-        <h1 class="card-heading simple">${_('Job Task: %(taskId)s - Job Browser') % dict(taskId=task.taskId_short)}</h1>
+      <div class="card card-small">
+        <h1 class="card-heading simple">${_('Job Task: %(taskId)s') % dict(taskId=task.taskId_short)}</h1>
         <div class="card-body">
         <div class="card-body">
           <p>
           <p>
             <ul class="nav nav-tabs">
             <ul class="nav nav-tabs">

+ 2 - 1
apps/jobbrowser/src/jobbrowser/templates/tasks.mako

@@ -22,6 +22,7 @@
 <%namespace name="comps" file="jobbrowser_components.mako" />
 <%namespace name="comps" file="jobbrowser_components.mako" />
 
 
 ${ commonheader(_('Task View: Job: %(jobId)s') % dict(jobId=job.jobId_short), "jobbrowser", user) | n,unicode }
 ${ commonheader(_('Task View: Job: %(jobId)s') % dict(jobId=job.jobId_short), "jobbrowser", user) | n,unicode }
+${ comps.menubar() }
 
 
 <%def name="selected(val, state)">
 <%def name="selected(val, state)">
     %   if val is not None and state is not None and val in state:
     %   if val is not None and state is not None and val in state:
@@ -30,7 +31,7 @@ ${ commonheader(_('Task View: Job: %(jobId)s') % dict(jobId=job.jobId_short), "j
 </%def>
 </%def>
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
+  <div class="card card-small">
     <h1 class="card-heading simple">${_('Task View: Job: %(jobId)s') % dict(jobId=job.jobId_short)}</h1>
     <h1 class="card-heading simple">${_('Task View: Job: %(jobId)s') % dict(jobId=job.jobId_short)}</h1>
     <div class="card-body">
     <div class="card-body">
       <p>
       <p>

+ 14 - 0
apps/jobbrowser/src/jobbrowser/templates/tasktracker.mako

@@ -21,8 +21,15 @@
 <%namespace name="comps" file="jobbrowser_components.mako" />
 <%namespace name="comps" file="jobbrowser_components.mako" />
 
 
 ${ commonheader(_('Tracker: %(trackerId)s') % dict(trackerId=tracker.trackerId), "jobbrowser", user) | n,unicode }
 ${ commonheader(_('Tracker: %(trackerId)s') % dict(trackerId=tracker.trackerId), "jobbrowser", user) | n,unicode }
+${ comps.menubar()}
 
 
 <div class="container-fluid">
 <div class="container-fluid">
+  <div class="row-fluid">
+    <div class="span12">
+      <div class="card card-home">
+        <div class="card-body">
+          <p>
+
     <h1>${_('Tracker at %(trackerHost)s on port %(trackerPort)s') % dict(trackerHost=tracker.host, trackerPort=tracker.httpPort)}</h1>
     <h1>${_('Tracker at %(trackerHost)s on port %(trackerPort)s') % dict(trackerHost=tracker.host, trackerPort=tracker.httpPort)}</h1>
     <div>
     <div>
         <dl>
         <dl>
@@ -80,6 +87,13 @@ ${ commonheader(_('Tracker: %(trackerId)s') % dict(trackerId=tracker.trackerId),
         </dl>
         </dl>
     </div>
     </div>
     % endif
     % endif
+
+          <a class="btn" href="javascript:history.back()">${_('Back')}</a>
+
+          </p>
+        </div>
+      </div>
+    </div>
 </div>
 </div>
 
 
 ${ commonfooter(messages) | n,unicode }
 ${ commonfooter(messages) | n,unicode }

+ 14 - 2
apps/jobbrowser/src/jobbrowser/templates/tasktrackers.mako

@@ -20,10 +20,16 @@
 
 
 <%namespace name="comps" file="jobbrowser_components.mako" />
 <%namespace name="comps" file="jobbrowser_components.mako" />
 ${ commonheader(_('Task Trackers'), "jobbrowser", user) | n,unicode }
 ${ commonheader(_('Task Trackers'), "jobbrowser", user) | n,unicode }
-
+${ comps.menubar()}
 <div class="container-fluid">
 <div class="container-fluid">
+<div class="row-fluid">
+  <div class="span12">
+    <div class="card card-small">
+      <h2 class="card-heading simple">${_('Task Trackers')}</h2>
+      <div class="card-body">
+        <p>
 
 
-<table class="datatables">
+<table class="datatables" style="width: 100%">
     <thead>
     <thead>
         <tr>
         <tr>
             <th>${_('Name')}</th>
             <th>${_('Name')}</th>
@@ -57,6 +63,12 @@ ${ commonheader(_('Task Trackers'), "jobbrowser", user) | n,unicode }
 </table>
 </table>
 
 
 <div id="trackerDialog"></div>
 <div id="trackerDialog"></div>
+
+        </p>
+      </div>
+    </div>
+  </div>
+</div>
 </div>
 </div>
 
 
 <script type="text/javascript" charset="utf-8">
 <script type="text/javascript" charset="utf-8">

+ 21 - 2
apps/jobsub/src/jobsub/templates/designs.mako

@@ -23,7 +23,7 @@ from django.utils.translation import ugettext as _
 
 
 <%namespace name="actionbar" file="actionbar.mako" />
 <%namespace name="actionbar" file="actionbar.mako" />
 
 
-${ commonheader(None, "jobsub", user, "60px") | n,unicode }
+${ commonheader(None, "jobsub", user) | n,unicode }
 
 
 <link rel="stylesheet" href="/jobsub/static/css/jobsub.css">
 <link rel="stylesheet" href="/jobsub/static/css/jobsub.css">
 
 
@@ -39,8 +39,27 @@ ${ commonheader(None, "jobsub", user, "60px") | n,unicode }
 <script src="/jobsub/static/js/jobsub.ko.js" type="text/javascript" charset="utf-8"></script>
 <script src="/jobsub/static/js/jobsub.ko.js" type="text/javascript" charset="utf-8"></script>
 <script src="/jobsub/static/js/jobsub.js" type="text/javascript" charset="utf-8"></script>
 <script src="/jobsub/static/js/jobsub.js" type="text/javascript" charset="utf-8"></script>
 
 
+
+<div class="navbar navbar-inverse navbar-fixed-top nokids">
+    <div class="navbar-inner">
+      <div class="container-fluid">
+        <div class="nav-collapse">
+          <ul class="nav">
+            <li class="currentApp">
+              <a href="/${app_name}">
+                <img src="/jobsub/static/art/icon_jobsub_24.png" />
+                ${ _('Job Designer') }
+              </a>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </div>
+</div>
+
+
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
+  <div class="card card-small">
   <h1 class="card-heading simple">${_('Job Designs')}</h1>
   <h1 class="card-heading simple">${_('Job Designs')}</h1>
 
 
   <%actionbar:render>
   <%actionbar:render>

+ 1 - 1
apps/jobsub/static/css/jobsub.css

@@ -28,4 +28,4 @@ a.advanced, a.advanced:link, a.advanced:hover {
 
 
 input.search-query {
 input.search-query {
   vertical-align: top;
   vertical-align: top;
-}
+}

+ 1 - 1
apps/metastore/src/metastore/settings.py

@@ -18,7 +18,7 @@
 DJANGO_APPS = ['metastore']
 DJANGO_APPS = ['metastore']
 NICE_NAME = "Metastore Manager"
 NICE_NAME = "Metastore Manager"
 REQUIRES_HADOOP = True
 REQUIRES_HADOOP = True
-ICON = "/metastore/static/art/table-browser-24-1.png"
+ICON = "/metastore/static/art/icon_metastore_24.png"
 MENU_INDEX = 20
 MENU_INDEX = 20
 
 
 IS_URL_NAMESPACED = True
 IS_URL_NAMESPACED = True

+ 20 - 0
apps/metastore/src/metastore/templates/components.mako

@@ -18,6 +18,26 @@
   from django.utils.translation import ugettext as _
   from django.utils.translation import ugettext as _
 %>
 %>
 
 
+<%def name="menubar()">
+  <div class="navbar navbar-inverse navbar-fixed-top nokids">
+      <div class="navbar-inner">
+        <div class="container-fluid">
+          <div class="nav-collapse">
+            <ul class="nav">
+              <li class="currentApp">
+                <a href="/${app_name}">
+                  <img src="/metastore/static/art/icon_metastore_24.png" />
+                  ${ _('Metastore Manager') }
+                </a>
+              </li>
+            </ul>
+          </div>
+        </div>
+      </div>
+  </div>
+</%def>
+
+
 <%def name="breadcrumbs(breadcrumbs)">
 <%def name="breadcrumbs(breadcrumbs)">
   <ul class="nav nav-pills hueBreadcrumbBar" id="breadcrumbs">
   <ul class="nav nav-pills hueBreadcrumbBar" id="breadcrumbs">
     <li>
     <li>

+ 3 - 2
apps/metastore/src/metastore/templates/databases.mako

@@ -21,12 +21,13 @@ from django.utils.translation import ugettext as _
 <%namespace name="components" file="components.mako" />
 <%namespace name="components" file="components.mako" />
 
 
 ${ commonheader(_('Databases'), 'metastore', user) | n,unicode }
 ${ commonheader(_('Databases'), 'metastore', user) | n,unicode }
+${ components.menubar() }
 
 
 <div class="container-fluid" id="databases">
 <div class="container-fluid" id="databases">
   <div class="row-fluid">
   <div class="row-fluid">
   % if has_write_access:
   % if has_write_access:
     <div class="span3">
     <div class="span3">
-      <div class="sidebar-nav">
+      <div class="sidebar-nav card-small">
         <ul class="nav nav-list">
         <ul class="nav nav-list">
           <li class="nav-header">${_('actions')}</li>
           <li class="nav-header">${_('actions')}</li>
           <li><a href="${ url('beeswax:create_database') }">${_('Create a new database')}</a></li>
           <li><a href="${ url('beeswax:create_database') }">${_('Create a new database')}</a></li>
@@ -37,7 +38,7 @@ ${ commonheader(_('Databases'), 'metastore', user) | n,unicode }
   %else:
   %else:
     <div class="span12">
     <div class="span12">
   % endif
   % endif
-      <div class="card">
+      <div class="card card-small">
         <h1 class="card-heading simple">${ components.breadcrumbs(breadcrumbs) }</h1>
         <h1 class="card-heading simple">${ components.breadcrumbs(breadcrumbs) }</h1>
         <%actionbar:render>
         <%actionbar:render>
           <%def name="search()">
           <%def name="search()">

+ 3 - 2
apps/metastore/src/metastore/templates/describe_partitions.mako

@@ -22,11 +22,12 @@
 <%namespace name="components" file="components.mako" />
 <%namespace name="components" file="components.mako" />
 
 
 ${ commonheader(_('Table Partitions: %(tableName)s') % dict(tableName=table.name), app_name, user) | n,unicode }
 ${ commonheader(_('Table Partitions: %(tableName)s') % dict(tableName=table.name), app_name, user) | n,unicode }
+${ components.menubar() }
 
 
 <div class="container-fluid">
 <div class="container-fluid">
   <div class="row-fluid">
   <div class="row-fluid">
     <div class="span3">
     <div class="span3">
-      <div class="sidebar-nav">
+      <div class="sidebar-nav card-small">
         <ul class="nav nav-list">
         <ul class="nav nav-list">
           <li class="nav-header">${_('Actions')}</li>
           <li class="nav-header">${_('Actions')}</li>
           <li><a href="${ url('metastore:describe_table', database=database, table=table.name) }">${_('Show Table')}</a></li>
           <li><a href="${ url('metastore:describe_table', database=database, table=table.name) }">${_('Show Table')}</a></li>
@@ -34,7 +35,7 @@ ${ commonheader(_('Table Partitions: %(tableName)s') % dict(tableName=table.name
       </div>
       </div>
     </div>
     </div>
     <div class="span9">
     <div class="span9">
-      <div class="card">
+      <div class="card card-small">
         <h1 class="card-heading simple">${ components.breadcrumbs(breadcrumbs) }</h1>
         <h1 class="card-heading simple">${ components.breadcrumbs(breadcrumbs) }</h1>
           % if partitions:
           % if partitions:
           <table class="table table-striped table-condensed datatables">
           <table class="table table-striped table-condensed datatables">

+ 3 - 2
apps/metastore/src/metastore/templates/describe_table.mako

@@ -28,6 +28,7 @@ from django.utils.translation import ugettext as _
     view_or_table_noun = _("Table")
     view_or_table_noun = _("Table")
 %>
 %>
 ${ commonheader(_("%s : %s") % (view_or_table_noun, table.name), app_name, user) | n,unicode }
 ${ commonheader(_("%s : %s") % (view_or_table_noun, table.name), app_name, user) | n,unicode }
+${ components.menubar() }
 
 
 <%def name="column_table(cols)">
 <%def name="column_table(cols)">
   <table class="table table-striped table-condensed datatables">
   <table class="table table-striped table-condensed datatables">
@@ -53,7 +54,7 @@ ${ commonheader(_("%s : %s") % (view_or_table_noun, table.name), app_name, user)
 <div class="container-fluid">
 <div class="container-fluid">
   <div class="row-fluid">
   <div class="row-fluid">
     <div class="span3">
     <div class="span3">
-      <div class="sidebar-nav">
+      <div class="sidebar-nav card-small">
         <ul class="nav nav-list">
         <ul class="nav nav-list">
           <li class="nav-header">${_('Actions')}</li>
           <li class="nav-header">${_('Actions')}</li>
           % if has_write_access:
           % if has_write_access:
@@ -71,7 +72,7 @@ ${ commonheader(_("%s : %s") % (view_or_table_noun, table.name), app_name, user)
       </div>
       </div>
     </div>
     </div>
     <div class="span9">
     <div class="span9">
-      <div class="card">
+      <div class="card card-small">
         <h1 class="card-heading simple">${ components.breadcrumbs(breadcrumbs) }</h1>
         <h1 class="card-heading simple">${ components.breadcrumbs(breadcrumbs) }</h1>
         <div class="card-body">
         <div class="card-body">
           <p>
           <p>

+ 3 - 2
apps/metastore/src/metastore/templates/tables.mako

@@ -22,11 +22,12 @@ from django.utils.translation import ugettext as _
 <%namespace name="components" file="components.mako" />
 <%namespace name="components" file="components.mako" />
 
 
 ${ commonheader(_('Tables'), 'metastore', user) | n,unicode }
 ${ commonheader(_('Tables'), 'metastore', user) | n,unicode }
+${ components.menubar() }
 
 
 <div class="container-fluid" id="tables">
 <div class="container-fluid" id="tables">
   <div class="row-fluid">
   <div class="row-fluid">
     <div class="span3">
     <div class="span3">
-      <div class="sidebar-nav">
+      <div class="sidebar-nav card-small">
         <ul class="nav nav-list">
         <ul class="nav nav-list">
           <li class="nav-header">${_('database')}</li>
           <li class="nav-header">${_('database')}</li>
           <li class="white">
           <li class="white">
@@ -43,7 +44,7 @@ ${ commonheader(_('Tables'), 'metastore', user) | n,unicode }
       </div>
       </div>
     </div>
     </div>
     <div class="span9">
     <div class="span9">
-      <div class="card">
+      <div class="card card-small">
         <h1 class="card-heading simple">${ components.breadcrumbs(breadcrumbs) }</h1>
         <h1 class="card-heading simple">${ components.breadcrumbs(breadcrumbs) }</h1>
         <%actionbar:render>
         <%actionbar:render>
           <%def name="search()">
           <%def name="search()">

+ 0 - 0
apps/metastore/static/art/table-browser-24-1.png → apps/metastore/static/art/icon_metastore_24.png


+ 2 - 2
apps/metastore/static/css/metastore.css

@@ -31,9 +31,9 @@
 }
 }
 
 
 .sidebar-nav {
 .sidebar-nav {
-  padding: 9px 0;
+  padding: 0;
 }
 }
 
 
 .card-heading {
 .card-heading {
   padding-left: 6px !important;
   padding-left: 6px !important;
-}
+}

+ 1 - 1
apps/oozie/src/oozie/templates/dashboard/list_oozie_bundle.mako

@@ -23,7 +23,7 @@
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
-${ commonheader(_("Bundle Dashboard"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Bundle Dashboard"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='dashboard') }
 ${ layout.menubar(section='dashboard') }
 
 
 
 

+ 1 - 1
apps/oozie/src/oozie/templates/dashboard/list_oozie_bundles.mako

@@ -23,7 +23,7 @@
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
-${ commonheader(_("Bundles Dashboard"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Bundles Dashboard"), "oozie", user) | n,unicode }
 ${layout.menubar(section='dashboard')}
 ${layout.menubar(section='dashboard')}
 
 
 
 

+ 1 - 1
apps/oozie/src/oozie/templates/dashboard/list_oozie_coordinator.mako

@@ -23,7 +23,7 @@
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
-${ commonheader(_("Coordinator Dashboard"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Coordinator Dashboard"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='dashboard') }
 ${ layout.menubar(section='dashboard') }
 
 
 
 

+ 1 - 1
apps/oozie/src/oozie/templates/dashboard/list_oozie_coordinators.mako

@@ -23,7 +23,7 @@
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
-${ commonheader(_("Coordinators Dashboard"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Coordinators Dashboard"), "oozie", user) | n,unicode }
 ${layout.menubar(section='dashboard')}
 ${layout.menubar(section='dashboard')}
 
 
 
 

+ 1 - 1
apps/oozie/src/oozie/templates/dashboard/list_oozie_info.mako

@@ -22,7 +22,7 @@
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
-${ commonheader(_("Oozie Information"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Oozie Information"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='dashboard') }
 ${ layout.menubar(section='dashboard') }
 
 
 
 

+ 1 - 1
apps/oozie/src/oozie/templates/dashboard/list_oozie_workflow.mako

@@ -24,7 +24,7 @@
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
-${ commonheader(_("Workflow Dashboard"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Workflow Dashboard"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='dashboard') }
 ${ layout.menubar(section='dashboard') }
 
 
 
 

+ 1 - 1
apps/oozie/src/oozie/templates/dashboard/list_oozie_workflow_action.mako

@@ -23,7 +23,7 @@
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
-${ commonheader(_("Workflow Action"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Workflow Action"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='running') }
 ${ layout.menubar(section='running') }
 
 
 
 

+ 1 - 1
apps/oozie/src/oozie/templates/dashboard/list_oozie_workflows.mako

@@ -24,7 +24,7 @@
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
 
 
-${ commonheader(_("Workflows Dashboard"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Workflows Dashboard"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='dashboard') }
 ${ layout.menubar(section='dashboard') }
 
 
 
 

+ 2 - 2
apps/oozie/src/oozie/templates/editor/create_bundle.mako

@@ -23,7 +23,7 @@
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
-${ commonheader(_("Create Bundle"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Create Bundle"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='bundles') }
 ${ layout.menubar(section='bundles') }
 
 
 
 
@@ -39,7 +39,7 @@ ${ layout.menubar(section='bundles') }
         </div>
         </div>
       </div>
       </div>
       <div class="span10">
       <div class="span10">
-        <div class="card" style="margin-top: 0">
+        <div class="card card-small">
           <h1 class="card-heading simple">${ _('Create Bundle') }</h1>
           <h1 class="card-heading simple">${ _('Create Bundle') }</h1>
           <div class="alert alert-info"><h3>${ _('Bundle data') }</h3></div>
           <div class="alert alert-info"><h3>${ _('Bundle data') }</h3></div>
           <fieldset>
           <fieldset>

+ 2 - 2
apps/oozie/src/oozie/templates/editor/create_coordinator.mako

@@ -22,7 +22,7 @@
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
-${ commonheader(_("Create Coordinator"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Create Coordinator"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='coordinators') }
 ${ layout.menubar(section='coordinators') }
 
 
 <style type="text/css">
 <style type="text/css">
@@ -52,7 +52,7 @@ ${ layout.menubar(section='coordinators') }
         </div>
         </div>
     </div>
     </div>
     <div class="span10">
     <div class="span10">
-      <div class="card" style="margin-top:0">
+      <div class="card card-small">
         <h1 class="card-heading simple">${ _('Coordinator Editor') } ${ coordinator.name }</h1>
         <h1 class="card-heading simple">${ _('Coordinator Editor') } ${ coordinator.name }</h1>
       <ul class="nav nav-pills">
       <ul class="nav nav-pills">
         <li class="active"><a href="#step1" class="step">${ _('Step 1: Details') }</a></li>
         <li class="active"><a href="#step1" class="step">${ _('Step 1: Details') }</a></li>

+ 2 - 2
apps/oozie/src/oozie/templates/editor/create_workflow.mako

@@ -22,7 +22,7 @@
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
-${ commonheader(_("Create Workflow"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Create Workflow"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='workflows') }
 ${ layout.menubar(section='workflows') }
 
 
 
 
@@ -39,7 +39,7 @@ ${ layout.menubar(section='workflows') }
       </div>
       </div>
     </div>
     </div>
     <div class="span10">
     <div class="span10">
-      <div class="card" style="padding-top:0;margin-top: 0">
+      <div class="card card-small">
         <div class="alert alert-info"><h3>${ _('Properties') }</h3></div>
         <div class="alert alert-info"><h3>${ _('Properties') }</h3></div>
           <div class="card-body">
           <div class="card-body">
             <p>
             <p>

+ 2 - 2
apps/oozie/src/oozie/templates/editor/edit_bundle.mako

@@ -24,7 +24,7 @@
 <%namespace name="properties" file="coordinator_properties.mako" />
 <%namespace name="properties" file="coordinator_properties.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
-${ commonheader(_("Edit Bundle"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Edit Bundle"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='bundles') }
 ${ layout.menubar(section='bundles') }
 
 
 <style type="text/css">
 <style type="text/css">
@@ -86,7 +86,7 @@ ${ layout.menubar(section='bundles') }
     </div>
     </div>
 
 
     <div class="span10">
     <div class="span10">
-      <div class="card" style="margin-top:0">
+      <div class="card card-small">
       <h1 class="card-heading simple">${ _('Bundle Editor : ') } ${ bundle.name }</h1>
       <h1 class="card-heading simple">${ _('Bundle Editor : ') } ${ bundle.name }</h1>
       <form id="jobForm" class="form-horizontal" action="${ url('oozie:edit_bundle', bundle=bundle.id) }" method="POST">
       <form id="jobForm" class="form-horizontal" action="${ url('oozie:edit_bundle', bundle=bundle.id) }" method="POST">
 
 

+ 2 - 2
apps/oozie/src/oozie/templates/editor/edit_coordinator.mako

@@ -24,7 +24,7 @@
 <%namespace name="properties" file="coordinator_properties.mako" />
 <%namespace name="properties" file="coordinator_properties.mako" />
 <%namespace name="coordinator_data" file="create_coordinator_data.mako" />
 <%namespace name="coordinator_data" file="create_coordinator_data.mako" />
 
 
-${ commonheader(_("Edit Coordinator"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Edit Coordinator"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='coordinators') }
 ${ layout.menubar(section='coordinators') }
 
 
 <style type="text/css">
 <style type="text/css">
@@ -81,7 +81,7 @@ ${ layout.menubar(section='coordinators') }
       </div>
       </div>
     </div>
     </div>
     <div class="span10">
     <div class="span10">
-      <div class="card" style="margin-top: 0">
+      <div class="card card-small">
         <h1 class="card-heading simple">${ _('Coordinator Editor : ') } ${ coordinator.name }</h1>
         <h1 class="card-heading simple">${ _('Coordinator Editor : ') } ${ coordinator.name }</h1>
       <form id="jobForm" class="form-horizontal" action="${ url('oozie:edit_coordinator', coordinator=coordinator.id) }" method="POST">
       <form id="jobForm" class="form-horizontal" action="${ url('oozie:edit_coordinator', coordinator=coordinator.id) }" method="POST">
       <div id="properties" class="section">
       <div id="properties" class="section">

+ 2 - 2
apps/oozie/src/oozie/templates/editor/edit_workflow.mako

@@ -25,7 +25,7 @@
 <%namespace name="controls" file="control_utils.mako" />
 <%namespace name="controls" file="control_utils.mako" />
 <%namespace name="workflows" file="workflow_utils.mako" />
 <%namespace name="workflows" file="workflow_utils.mako" />
 
 
-${ commonheader(_("Edit Workflow"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Edit Workflow"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='workflows') }
 ${ layout.menubar(section='workflows') }
 
 
 
 
@@ -77,7 +77,7 @@ ${ layout.menubar(section='workflows') }
   </div>
   </div>
   <div class="span10">
   <div class="span10">
     <div id="properties" class="section hide">
     <div id="properties" class="section hide">
-    <div class="card" style="padding-top:0;margin-top: 0">
+    <div class="card card-small">
       <div class="alert alert-info"><h3 data-bind="text: name()"></h3></div>
       <div class="alert alert-info"><h3 data-bind="text: name()"></h3></div>
       <div class="card-body">
       <div class="card-body">
         <p>
         <p>

+ 11 - 9
apps/oozie/src/oozie/templates/editor/import_workflow.mako

@@ -22,27 +22,26 @@
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
-${ commonheader(_("Import Workflow"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Import Workflow"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='workflows') }
 ${ layout.menubar(section='workflows') }
 
 
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <h1>${ _('Import Workflow') }</h1>
+  <div class="card card-small">
+  <h1 class="card-heading simple">${ _('Import Workflow') }</h1>
+  <div class="card-body">
+    <p>
 
 
-    <div class="well">
       <p>${_("You can import an external Oozie workflow by providing the workflow definition file.")}</p>
       <p>${_("You can import an external Oozie workflow by providing the workflow definition file.")}</p>
       <p>
       <p>
         ${ _('Supported workflow versions are 0.4. Other versions might work depending on their complexity.') }
         ${ _('Supported workflow versions are 0.4. Other versions might work depending on their complexity.') }
       </p>
       </p>
-    </div>
 
 
     <div style="min-height:300px">
     <div style="min-height:300px">
       <form class="form-horizontal" id="workflowForm" action="${ url('oozie:import_workflow') }" method="POST" enctype="multipart/form-data">
       <form class="form-horizontal" id="workflowForm" action="${ url('oozie:import_workflow') }" method="POST" enctype="multipart/form-data">
 
 
       <div class="row-fluid">
       <div class="row-fluid">
-        <div class="span2">
-        </div>
-        <div class="span8">
+        <div class="span12">
           <fieldset>
           <fieldset>
           ${ utils.render_field(workflow_form['name']) }
           ${ utils.render_field(workflow_form['name']) }
           ${ utils.render_field(workflow_form['description']) }
           ${ utils.render_field(workflow_form['description']) }
@@ -73,15 +72,18 @@ ${ layout.menubar(section='workflows') }
          </fieldset>
          </fieldset>
         </div>
         </div>
 
 
-        <div class="span2"></div>
       </div>
       </div>
 
 
-      <div class="form-actions center">
+      <div class="form-actions" style="padding-left: 20px !important;">
         <input class="btn btn-primary" type="submit" value="${ _('Import') }" />
         <input class="btn btn-primary" type="submit" value="${ _('Import') }" />
         <a class="btn" onclick="history.back()">${ _('Back') }</a>
         <a class="btn" onclick="history.back()">${ _('Back') }</a>
       </div>
       </div>
       </form>
       </form>
     </div>
     </div>
+
+    </p>
+  </div>
+</div>
 </div>
 </div>
 
 
 ${ utils.path_chooser_libs(False) }
 ${ utils.path_chooser_libs(False) }

+ 2 - 2
apps/oozie/src/oozie/templates/editor/list_bundles.mako

@@ -24,7 +24,7 @@
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
-${ commonheader(_("Bundles"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Bundles"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='bundles') }
 ${ layout.menubar(section='bundles') }
 
 
 <style type="text/css">
 <style type="text/css">
@@ -34,7 +34,7 @@ ${ layout.menubar(section='bundles') }
 </style>
 </style>
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
+  <div class="card card-small">
   <h1 class="card-heading simple">${ _('Bundle Manager') }</h1>
   <h1 class="card-heading simple">${ _('Bundle Manager') }</h1>
 
 
   <%actionbar:render>
   <%actionbar:render>

+ 2 - 2
apps/oozie/src/oozie/templates/editor/list_coordinators.mako

@@ -23,7 +23,7 @@
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
-${ commonheader(_("Coordinators"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Coordinators"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='coordinators') }
 ${ layout.menubar(section='coordinators') }
 
 
 <style type="text/css">
 <style type="text/css">
@@ -33,7 +33,7 @@ ${ layout.menubar(section='coordinators') }
 </style>
 </style>
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
+  <div class="card card-small">
   <h1 class="card-heading simple">${ _('Coordinator Manager') }</h1>
   <h1 class="card-heading simple">${ _('Coordinator Manager') }</h1>
 
 
   <%actionbar:render>
   <%actionbar:render>

+ 12 - 8
apps/oozie/src/oozie/templates/editor/list_history.mako

@@ -24,19 +24,20 @@
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
-${ commonheader(_("History"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("History"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='history') }
 ${ layout.menubar(section='history') }
 
 
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <h1>${ _('Submission History') }</h1>
-  <div class="well hueWell">
-    <form class="form-search">
-      <input type="text" id="filterInput" class="input-xlarge search-query" placeholder="${ _('Search for username, name, etc...') }">
-    </form>
-  </div>
+  <div class="card card-small">
+  <h1 class="card-heading simple">${ _('Submission History') }</h1>
+    <div class="card-body">
+      <p>
+        <form class="form-search">
+          <input type="text" id="filterInput" class="input-xlarge search-query" placeholder="${ _('Search for username, name, etc...') }">
+        </form>
 
 
-  <table class="table table-condensed datatables" id="jobTable">
+        <table class="table table-condensed datatables" id="jobTable">
     <thead>
     <thead>
       <tr>
       <tr>
         <th width="10%">${ _('Submission Date') }</th>
         <th width="10%">${ _('Submission Date') }</th>
@@ -61,6 +62,9 @@ ${ layout.menubar(section='history') }
     % endfor
     % endfor
     </tbody>
     </tbody>
   </table>
   </table>
+      </p>
+    </div>
+</div>
 </div>
 </div>
 
 
 
 

+ 12 - 2
apps/oozie/src/oozie/templates/editor/list_history_record.mako

@@ -22,12 +22,18 @@
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 
 
-${ commonheader(_("History Record"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("History Record"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='history') }
 ${ layout.menubar(section='history') }
 
 
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <h1>${ _('History') } ${ record.job.name }</h1>
+  <div class="card card-small">
+
+  <h1 class="card-heading simple">${ _('History') } ${ record.job.name }</h1>
+
+  <div class="card-body">
+    <p>
+
 
 
   <div>
   <div>
     <h2>${ _('Details') }</h2>
     <h2>${ _('Details') }</h2>
@@ -79,6 +85,10 @@ ${ layout.menubar(section='history') }
   </div>
   </div>
 
 
    <a href="${ url('oozie:list_history') }" class="btn">${ _('Back') }</a>
    <a href="${ url('oozie:list_history') }" class="btn">${ _('Back') }</a>
+
+    </p>
+  </div>
+</div>
 </div>
 </div>
 
 
 ${ commonfooter(messages) | n,unicode }
 ${ commonfooter(messages) | n,unicode }

+ 2 - 2
apps/oozie/src/oozie/templates/editor/list_trashed_bundles.mako

@@ -24,12 +24,12 @@
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
-${ commonheader(_("Trashed Bundles"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Trashed Bundles"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='bundles') }
 ${ layout.menubar(section='bundles') }
 
 
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
+  <div class="card card-small">
   <h1 class="card-heading simple">${ _('Bundle Trash') }</h1>
   <h1 class="card-heading simple">${ _('Bundle Trash') }</h1>
 
 
   <%actionbar:render>
   <%actionbar:render>

+ 2 - 2
apps/oozie/src/oozie/templates/editor/list_trashed_coordinators.mako

@@ -23,12 +23,12 @@
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
-${ commonheader(_("Trashed Coordinators"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Trashed Coordinators"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='coordinators') }
 ${ layout.menubar(section='coordinators') }
 
 
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
+  <div class="card card-small">
   <h1 class="card-heading simple">${ _('Coordinator Trash') }</h1>
   <h1 class="card-heading simple">${ _('Coordinator Trash') }</h1>
 
 
   <%actionbar:render>
   <%actionbar:render>

+ 2 - 2
apps/oozie/src/oozie/templates/editor/list_trashed_workflows.mako

@@ -23,12 +23,12 @@
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
-${ commonheader(_("Trashed Workflows"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Trashed Workflows"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='workflows') }
 ${ layout.menubar(section='workflows') }
 
 
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
+  <div class="card card-small">
   <h1 class="card-heading simple">${ _('Workflow Trash') }</h1>
   <h1 class="card-heading simple">${ _('Workflow Trash') }</h1>
 
 
   <%actionbar:render>
   <%actionbar:render>

+ 2 - 2
apps/oozie/src/oozie/templates/editor/list_workflows.mako

@@ -23,7 +23,7 @@
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 <%namespace name="utils" file="../utils.inc.mako" />
 
 
-${ commonheader(_("Workflows"), "oozie", user, "100px") | n,unicode }
+${ commonheader(_("Workflows"), "oozie", user) | n,unicode }
 ${ layout.menubar(section='workflows') }
 ${ layout.menubar(section='workflows') }
 
 
 <style type="text/css">
 <style type="text/css">
@@ -33,7 +33,7 @@ ${ layout.menubar(section='workflows') }
 </style>
 </style>
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
+  <div class="card card-small">
   <h1 class="card-heading simple">${ _('Workflow Manager') }</h1>
   <h1 class="card-heading simple">${ _('Workflow Manager') }</h1>
 
 
   <%actionbar:render>
   <%actionbar:render>

+ 20 - 11
apps/oozie/src/oozie/templates/navigation-bar.mako

@@ -22,21 +22,30 @@
 
 
 
 
 <%def name="menubar(section='')">
 <%def name="menubar(section='')">
-  <div class="subnav subnav-fixed">
-    <div class="container-fluid">
-      <ul class="nav nav-pills">
-        <li class="${utils.is_selected(section, 'dashboard')}"><a href="${url('oozie:list_oozie_workflows')}">${ _('Dashboard') }</a></li>
-        <li class="${utils.is_selected(section, 'workflows')}"><a href="${url('oozie:list_workflows')}">${ _('Workflows') }</a></li>
-        <li class="${utils.is_selected(section, 'coordinators')}"><a href="${url('oozie:list_coordinators')}">${ _('Coordinators') }</a></li>
-        <li class="${utils.is_selected(section, 'bundles')}"><a href="${url('oozie:list_bundles')}">${ _('Bundles') }</a></li>
-      </ul>
-    </div>
+    <div class="navbar navbar-inverse navbar-fixed-top">
+      <div class="navbar-inner">
+        <div class="container-fluid">
+          <div class="nav-collapse">
+            <ul class="nav">
+              <li class="currentApp">
+                <a href="/${app_name}">
+                  <img src="/oozie/static/art/icon_oozie_24.png" />
+                  ${ _('Oozie') }
+                </a>
+               </li>
+              <li class="${utils.is_selected(section, 'dashboard')}"><a href="${url('oozie:list_oozie_workflows')}">${ _('Dashboard') }</a></li>
+              <li class="${utils.is_selected(section, 'workflows')}"><a href="${url('oozie:list_workflows')}">${ _('Workflows') }</a></li>
+              <li class="${utils.is_selected(section, 'coordinators')}"><a href="${url('oozie:list_coordinators')}">${ _('Coordinators') }</a></li>
+              <li class="${utils.is_selected(section, 'bundles')}"><a href="${url('oozie:list_bundles')}">${ _('Bundles') }</a></li>
+            </ul>
+          </div>
+        </div>
+      </div>
   </div>
   </div>
 </%def>
 </%def>
 
 
 <%def name="dashboard_sub_menubar(section='')">
 <%def name="dashboard_sub_menubar(section='')">
-  <div class="card" style="padding-top:1px;margin-top:1px">
-##    <h1 class="card-heading simple">${ _('Dashboard') }</h1>
+  <div class="card card-small">
     <div class="card-body">
     <div class="card-body">
       <p>
       <p>
         <ul class="nav nav-tabs">
         <ul class="nav nav-tabs">

+ 30 - 22
apps/pig/src/pig/templates/app.mako

@@ -20,22 +20,31 @@
 
 
 <%namespace name="actionbar" file="actionbar.mako" />
 <%namespace name="actionbar" file="actionbar.mako" />
 
 
-${ commonheader(None, "pig", user, "100px") | n,unicode }
-
-<div class="subnav subnav-fixed">
-  <div class="container-fluid">
-    <ul class="nav nav nav-pills">
-      <li class="active"><a href="#editor" data-bind="css: { unsaved: isDirty }">${ _('Editor') }</a></li>
-      <li><a href="#scripts">${ _('Scripts') }</a></li>
-      <li><a href="#dashboard">${ _('Dashboard') }</a></li>
-    </ul>
-  </div>
+${ commonheader(None, "pig", user) | n,unicode }
+
+<div class="navbar navbar-inverse navbar-fixed-top">
+    <div class="navbar-inner">
+      <div class="container-fluid">
+        <div class="nav-collapse">
+          <ul class="nav">
+            <li class="currentApp">
+              <a href="/${app_name}">
+                <img src="/pig/static/art/icon_pig_24.png" />
+                ${ _('Pig Editor') }
+              </a>
+            </li>
+            <li class="active"><a href="#editor" data-bind="css: { unsaved: isDirty }">${ _('Editor') }</a></li>
+            <li><a href="#scripts">${ _('Scripts') }</a></li>
+            <li><a href="#dashboard">${ _('Dashboard') }</a></li>
+          </ul>
+        </div>
+      </div>
+    </div>
 </div>
 </div>
 
 
-
 <div class="container-fluid">
 <div class="container-fluid">
   <div id="scripts" class="row-fluid mainSection hide">
   <div id="scripts" class="row-fluid mainSection hide">
-    <div class="card">
+    <div class="card card-small">
       <%actionbar:render>
       <%actionbar:render>
         <%def name="search()">
         <%def name="search()">
             <input id="filter" type="text" class="input-xlarge search-query" placeholder="${_('Search for script name or content')}">
             <input id="filter" type="text" class="input-xlarge search-query" placeholder="${_('Search for script name or content')}">
@@ -100,7 +109,7 @@ ${ commonheader(None, "pig", user, "100px") | n,unicode }
 
 
   <div id="editor" class="row-fluid mainSection hide">
   <div id="editor" class="row-fluid mainSection hide">
     <div class="span2">
     <div class="span2">
-      <div class="sidebar-nav">
+      <div class="sidebar-nav" style="padding-top: 0">
           <ul class="nav nav-list">
           <ul class="nav nav-list">
             <li class="nav-header">${_('Editor')}</li>
             <li class="nav-header">${_('Editor')}</li>
             <li data-bind="click: editScript" class="active" data-section="edit">
             <li data-bind="click: editScript" class="active" data-section="edit">
@@ -114,9 +123,6 @@ ${ commonheader(None, "pig", user, "100px") | n,unicode }
                 <i class="icon-save"></i> ${ _('Save') }
                 <i class="icon-save"></i> ${ _('Save') }
               </a>
               </a>
             </li>
             </li>
-            ##<li class="nav-header">${_('UDF')}</li>
-            ##<li><a href="#createDataset">${ _('Python') }</a></li>
-            ##<li><a href="#createDataset">${ _('Ruby') }</a></li>
             <li class="nav-header">${_('Run')}</li>
             <li class="nav-header">${_('Run')}</li>
             <li data-bind="click: runOrShowSubmissionModal, visible: !currentScript().isRunning()">
             <li data-bind="click: runOrShowSubmissionModal, visible: !currentScript().isRunning()">
               <a href="#" title="${ _('Run the script') }" rel="tooltip" data-placement="right">
               <a href="#" title="${ _('Run the script') }" rel="tooltip" data-placement="right">
@@ -169,7 +175,7 @@ ${ commonheader(None, "pig", user, "100px") | n,unicode }
         <div class="ribbon">${ _('Unsaved') }</div>
         <div class="ribbon">${ _('Unsaved') }</div>
       </div>
       </div>
 
 
-      <div class="card">
+      <div class="card card-small">
 
 
       <div id="edit" class="section">
       <div id="edit" class="section">
         <div class="alert alert-info">
         <div class="alert alert-info">
@@ -382,7 +388,7 @@ ${ commonheader(None, "pig", user, "100px") | n,unicode }
 
 
   <div id="dashboard" class="row-fluid mainSection hide">
   <div id="dashboard" class="row-fluid mainSection hide">
 
 
-    <div class="card card-home">
+    <div class="card card-small">
       <h2 class="card-heading simple">${ _('Running') }</h2>
       <h2 class="card-heading simple">${ _('Running') }</h2>
       <div class="card-body">
       <div class="card-body">
         <p>
         <p>
@@ -406,7 +412,7 @@ ${ commonheader(None, "pig", user, "100px") | n,unicode }
       </div>
       </div>
     </div>
     </div>
 
 
-    <div class="card card-home">
+    <div class="card card-small">
       <h2 class="card-heading simple">${ _('Completed') }</h2>
       <h2 class="card-heading simple">${ _('Completed') }</h2>
       <div class="card-body">
       <div class="card-body">
         <p>
         <p>
@@ -916,7 +922,7 @@ ${ commonheader(None, "pig", user, "100px") | n,unicode }
     $(window).on("resize", function () {
     $(window).on("resize", function () {
       window.clearTimeout(_resizeTimeout);
       window.clearTimeout(_resizeTimeout);
       _resizeTimeout = window.setTimeout(function () {
       _resizeTimeout = window.setTimeout(function () {
-        codeMirror.setSize("100%", $(window).height() - 276);
+        codeMirror.setSize("100%", $(window).height() - RESIZE_CORRECTION);
       }, 100);
       }, 100);
     });
     });
 
 
@@ -1010,10 +1016,12 @@ ${ commonheader(None, "pig", user, "100px") | n,unicode }
       resizeLogs();
       resizeLogs();
     });
     });
 
 
+    var RESIZE_CORRECTION = 246;
+
     function showMainSection(mainSection, includeGA) {
     function showMainSection(mainSection, includeGA) {
       window.setTimeout(function () {
       window.setTimeout(function () {
         codeMirror.refresh();
         codeMirror.refresh();
-        codeMirror.setSize("100%", $(window).height() - 276);
+        codeMirror.setSize("100%", $(window).height() - RESIZE_CORRECTION);
       }, 100);
       }, 100);
 
 
       if ($("#" + mainSection).is(":hidden")) {
       if ($("#" + mainSection).is(":hidden")) {
@@ -1040,7 +1048,7 @@ ${ commonheader(None, "pig", user, "100px") | n,unicode }
     }
     }
 
 
     function highlightMainMenu(mainSection) {
     function highlightMainMenu(mainSection) {
-      $(".nav-pills li").removeClass("active");
+      $(".navbar-fixed-top .nav li").removeClass("active");
       $("a[href='#" + mainSection + "']").parent().addClass("active");
       $("a[href='#" + mainSection + "']").parent().addClass("active");
     }
     }
 
 

+ 1 - 1
apps/pig/static/css/pig.css

@@ -119,7 +119,7 @@
 }
 }
 
 
 .unsaved {
 .unsaved {
-  border-bottom: 1px solid #C63D37;
+  border-color: #C63D37!important;
 }
 }
 
 
 .editorError {
 .editorError {

+ 1 - 1
apps/search/src/search/templates/admin_collection_facets.mako

@@ -22,7 +22,7 @@
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="macros" file="macros.mako" />
 <%namespace name="macros" file="macros.mako" />
 
 
-${ commonheader(_('Search'), "search", user, "40px") | n,unicode }
+${ commonheader(_('Search'), "search", user, "29px") | n,unicode }
 
 
 <%layout:skeleton>
 <%layout:skeleton>
   <%def name="title()">
   <%def name="title()">

+ 1 - 1
apps/search/src/search/templates/admin_collection_highlighting.mako

@@ -22,7 +22,7 @@
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="macros" file="macros.mako" />
 <%namespace name="macros" file="macros.mako" />
 
 
-${ commonheader(_('Search'), "search", user, "40px") | n,unicode }
+${ commonheader(_('Search'), "search", user, "29px") | n,unicode }
 
 
 <%layout:skeleton>
 <%layout:skeleton>
   <%def name="title()">
   <%def name="title()">

+ 1 - 1
apps/search/src/search/templates/admin_collection_properties.mako

@@ -24,7 +24,7 @@
 <%namespace name="utils" file="utils.inc.mako" />
 <%namespace name="utils" file="utils.inc.mako" />
 
 
 
 
-${ commonheader(_('Search'), "search", user, "40px") | n,unicode }
+${ commonheader(_('Search'), "search", user, "29px") | n,unicode }
 
 
 <%def name="indexProperty(key)">
 <%def name="indexProperty(key)">
   %if key in solr_collection["status"][hue_collection.name]["index"]:
   %if key in solr_collection["status"][hue_collection.name]["index"]:

+ 1 - 1
apps/search/src/search/templates/admin_collection_sorting.mako

@@ -22,7 +22,7 @@
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="macros" file="macros.mako" />
 <%namespace name="macros" file="macros.mako" />
 
 
-${ commonheader(_('Search'), "search", user, "40px") | n,unicode }
+${ commonheader(_('Search'), "search", user, "29px") | n,unicode }
 
 
 <%layout:skeleton>
 <%layout:skeleton>
   <%def name="title()">
   <%def name="title()">

+ 1 - 1
apps/search/src/search/templates/admin_collection_template.mako

@@ -22,7 +22,7 @@
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="macros" file="macros.mako" />
 <%namespace name="macros" file="macros.mako" />
 
 
-${ commonheader(_('Search'), "search", user, "40px") | n,unicode }
+${ commonheader(_('Search'), "search", user, "29px") | n,unicode }
 
 
 <style type="text/css">
 <style type="text/css">
   .CodeMirror {
   .CodeMirror {

+ 1 - 1
apps/search/src/search/templates/admin_collections.mako

@@ -22,7 +22,7 @@
 <%namespace name="macros" file="macros.mako" />
 <%namespace name="macros" file="macros.mako" />
 <%namespace name="actionbar" file="actionbar.mako" />
 <%namespace name="actionbar" file="actionbar.mako" />
 
 
-${ commonheader(_('Search'), "search", user, "40px") | n,unicode }
+${ commonheader(_('Search'), "search", user, "29px") | n,unicode }
 
 
 <link rel="stylesheet" href="/search/static/css/admin.css">
 <link rel="stylesheet" href="/search/static/css/admin.css">
 
 

+ 1 - 1
apps/search/src/search/templates/search.mako

@@ -22,7 +22,7 @@ import urllib
 
 
 <%namespace name="macros" file="macros.mako" />
 <%namespace name="macros" file="macros.mako" />
 
 
-${ commonheader(_('Search'), "search", user, "40px") | n,unicode }
+${ commonheader(_('Search'), "search", user, "29px") | n,unicode }
 
 
 <link rel="stylesheet" href="/search/static/css/search.css">
 <link rel="stylesheet" href="/search/static/css/search.css">
 <script src="/static/ext/js/moment.min.js" type="text/javascript" charset="utf-8"></script>
 <script src="/static/ext/js/moment.min.js" type="text/javascript" charset="utf-8"></script>

+ 0 - 1
apps/search/static/css/admin.css

@@ -90,7 +90,6 @@ h3 {
   padding-left: 20px;
   padding-left: 20px;
   padding-right: 20px;
   padding-right: 20px;
   text-align: left;
   text-align: left;
-  margin-top: 10px;
 }
 }
 
 
 .search-bar h4 {
 .search-bar h4 {

+ 0 - 1
apps/search/static/css/search.css

@@ -40,7 +40,6 @@
   padding-left: 20px;
   padding-left: 20px;
   padding-right: 20px;
   padding-right: 20px;
   text-align: left;
   text-align: left;
-  margin-top: 10px;
 }
 }
 
 
 .search-bar input {
 .search-bar input {

+ 3 - 3
apps/sqoop/src/sqoop/templates/app.mako

@@ -21,10 +21,10 @@
 
 
 <%namespace name="actionbar" file="actionbar.mako" />
 <%namespace name="actionbar" file="actionbar.mako" />
 
 
-${ commonheader(None, "sqoop", user, "40px") | n,unicode }
+${ commonheader(None, "sqoop", user) | n,unicode }
 <div data-bind="if: !isLoading(), css: {'hide': isLoading}" id="top-bar-container" class="hide">
 <div data-bind="if: !isLoading(), css: {'hide': isLoading}" id="top-bar-container" class="hide">
   <div class="top-bar" data-bind="visible:shownSection() == 'jobs-list'">
   <div class="top-bar" data-bind="visible:shownSection() == 'jobs-list'">
-    <div style="margin-top: 4px; margin-right: 20px" class="pull-right">
+    <div style="margin-top: 4px; margin-right: 40px" class="pull-right">
       <a title="${_('Create a new job')}" href="#job/new" data-bind="visible: isReady"><i class="icon-plus-sign"></i> ${_('New job')}</a>
       <a title="${_('Create a new job')}" href="#job/new" data-bind="visible: isReady"><i class="icon-plus-sign"></i> ${_('New job')}</a>
     </div>
     </div>
     <h4>${_('Sqoop Jobs')}</h4>
     <h4>${_('Sqoop Jobs')}</h4>
@@ -33,7 +33,7 @@ ${ commonheader(None, "sqoop", user, "40px") | n,unicode }
 
 
   <!-- ko if: job -->
   <!-- ko if: job -->
   <div class="top-bar" data-bind="visible:shownSection() == 'job-editor', with: job">
   <div class="top-bar" data-bind="visible:shownSection() == 'job-editor', with: job">
-    <div style="margin-top: 4px; margin-right: 20px" class="pull-right">
+    <div style="margin-top: 4px; margin-right: 40px" class="pull-right">
       <a title="${_('Create a new job')}" href="#job/new"><i class="icon-plus-sign"></i> ${_('New job')}</a>
       <a title="${_('Create a new job')}" href="#job/new"><i class="icon-plus-sign"></i> ${_('New job')}</a>
     </div>
     </div>
     <h4 data-bind="visible: !persisted()"><a title="${_('Back to jobs list')}" href="#jobs">${_('Sqoop Jobs')}</a> <span class="muted">/</span> ${_('New Job')}</h4>
     <h4 data-bind="visible: !persisted()"><a title="${_('Back to jobs list')}" href="#jobs">${_('Sqoop Jobs')}</a> <span class="muted">/</span> ${_('New Job')}</h4>

+ 3 - 1
apps/sqoop/static/css/sqoop.css

@@ -72,6 +72,9 @@ h1.emptyMessage {
 }
 }
 
 
 .top-bar {
 .top-bar {
+  position: fixed;
+  top:28px;
+  width: 100%;
   background-color: #FAFAFA;
   background-color: #FAFAFA;
   border-bottom: 1px solid #E3E3E3;
   border-bottom: 1px solid #E3E3E3;
   box-shadow: 0 1px 4px rgba(0, 0, 0, 0.067);
   box-shadow: 0 1px 4px rgba(0, 0, 0, 0.067);
@@ -79,7 +82,6 @@ h1.emptyMessage {
   padding: 10px 20px;
   padding: 10px 20px;
   text-align: left;
   text-align: left;
   height: 30px;
   height: 30px;
-  margin-top: 10px;
 }
 }
 
 
 .top-bar h4 {
 .top-bar h4 {

+ 5 - 3
apps/useradmin/src/useradmin/templates/add_ldap_users.mako

@@ -22,12 +22,13 @@ from django.utils.translation import ugettext as _
 
 
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="layout" file="layout.mako" />
 
 
-${ commonheader(_('Hue Users'), "useradmin", user, "100px") | n,unicode }
-${layout.menubar(section='users', _=_)}
+${ commonheader(_('Hue Users'), "useradmin", user) | n,unicode }
+${ layout.menubar(section='users') }
 
 
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-    <h1>${_('Hue Users - Add/Sync LDAP user')}</h1>
+  <div class="card card-small">
+    <h1 class="card-heading simple">${_('Hue Users - Add/Sync LDAP user')}</h1>
     <br/>
     <br/>
 
 
   <form id="editForm" method="POST" class="form form-horizontal" autocomplete="off">
   <form id="editForm" method="POST" class="form form-horizontal" autocomplete="off">
@@ -51,6 +52,7 @@ ${layout.menubar(section='users', _=_)}
     </div>
     </div>
   </form>
   </form>
 </div>
 </div>
+  </div>
 
 
 <script type="text/javascript" charset="utf-8">
 <script type="text/javascript" charset="utf-8">
   $(document).ready(function(){
   $(document).ready(function(){

+ 3 - 3
apps/useradmin/src/useradmin/templates/edit_group.mako

@@ -23,8 +23,8 @@ from django.utils.translation import ugettext as _
 
 
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="layout" file="layout.mako" />
 
 
-${ commonheader(_('Hue Groups'), "useradmin", user, "100px") | n,unicode }
-${layout.menubar(section='groups', _=_)}
+${ commonheader(_('Hue Groups'), "useradmin", user) | n,unicode }
+${layout.menubar(section='groups')}
 
 
 <%def name="render_field(field)">
 <%def name="render_field(field)">
   %if not field.is_hidden:
   %if not field.is_hidden:
@@ -43,7 +43,7 @@ ${layout.menubar(section='groups', _=_)}
 
 
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
+  <div class="card card-small">
     % if name:
     % if name:
         <h1 class="card-heading simple">${_('Hue Groups - Edit group: %(name)s') % dict(name=name)}</h1>
         <h1 class="card-heading simple">${_('Hue Groups - Edit group: %(name)s') % dict(name=name)}</h1>
     % else:
     % else:

+ 3 - 3
apps/useradmin/src/useradmin/templates/edit_permissions.mako

@@ -20,8 +20,8 @@ from django.utils.translation import ugettext as _
 %>
 %>
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="layout" file="layout.mako" />
 
 
-${ commonheader(_('Hue Permissions'), "useradmin", user, "100px") | n,unicode }
-${layout.menubar(section='permissions', _=_)}
+${ commonheader(_('Hue Permissions'), "useradmin", user) | n,unicode }
+${layout.menubar(section='permissions')}
 
 
 
 
 <%def name="render_field(field)">
 <%def name="render_field(field)">
@@ -40,7 +40,7 @@ ${layout.menubar(section='permissions', _=_)}
 </%def>
 </%def>
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
+  <div class="card card-small">
     <h1 class="card-heading simple">${_('Hue Permissions - Edit app: %(app)s') % dict(app=app)}</h1>
     <h1 class="card-heading simple">${_('Hue Permissions - Edit app: %(app)s') % dict(app=app)}</h1>
     <br/>
     <br/>
 
 

+ 4 - 7
apps/useradmin/src/useradmin/templates/edit_user.mako

@@ -20,14 +20,11 @@ from django.utils.translation import ugettext as _
 
 
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="layout" file="layout.mako" />
 
 
-${ commonheader(_('Hue Users'), "useradmin", user, "100px") | n,unicode }
-
-% if user.is_superuser:
-  ${ layout.menubar(section='users', _=_) }
-% endif
+${ commonheader(_('Hue Users'), "useradmin", user) | n,unicode }
+${ layout.menubar(section='users') }
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
+  <div class="card card-small">
     % if username:
     % if username:
       <h1 class="card-heading simple">${_('Hue Users - Edit user: %(username)s') % dict(username=username)}</h1>
       <h1 class="card-heading simple">${_('Hue Users - Edit user: %(username)s') % dict(username=username)}</h1>
     % else:
     % else:
@@ -37,7 +34,7 @@ ${ commonheader(_('Hue Users'), "useradmin", user, "100px") | n,unicode }
     <br/>
     <br/>
     <form id="editForm" method="POST" class="form form-horizontal" autocomplete="off">
     <form id="editForm" method="POST" class="form form-horizontal" autocomplete="off">
     <div id="properties" class="section">
     <div id="properties" class="section">
-      <ul class="nav nav-tabs">
+      <ul class="nav nav-tabs" style="margin-bottom: 0">
         <li class="active"><a href="#step1" class="step">${ _('Step 1: Credentials (required)') }</a></li>
         <li class="active"><a href="#step1" class="step">${ _('Step 1: Credentials (required)') }</a></li>
         <li><a href="#step2" class="step">${ user.is_superuser and _('Step 2: Names and Groups') or _('Step 2: Names') }</a>
         <li><a href="#step2" class="step">${ user.is_superuser and _('Step 2: Names and Groups') or _('Step 2: Names') }</a>
         </li>
         </li>

+ 27 - 10
apps/useradmin/src/useradmin/templates/layout.mako

@@ -18,6 +18,8 @@
 ## no spaces in this method please; we're declaring a CSS class, and ART uses this value for stuff, and it splits on spaces, and
 ## no spaces in this method please; we're declaring a CSS class, and ART uses this value for stuff, and it splits on spaces, and
 ## multiple spaces and line breaks cause issues
 ## multiple spaces and line breaks cause issues
 <%!
 <%!
+from django.utils.translation import ugettext as _
+
 def is_selected(section, matcher):
 def is_selected(section, matcher):
   if section == matcher:
   if section == matcher:
     return "active"
     return "active"
@@ -44,18 +46,33 @@ def is_selected(section, matcher):
   %endif
   %endif
 </%def>
 </%def>
 
 
-<%def name="menubar(section='', _=None)">
-	<div class="subnav subnav-fixed">
-		<div class="container-fluid">
-			<ul class="nav nav-pills">
-				<li class="${is_selected(section, 'users')}"><a href="/useradmin/users">${_('Users')}</a></li>
-				<li class="${is_selected(section, 'groups')}"><a href="/useradmin/groups">${_('Groups')}</a></li>
-				<li class="${is_selected(section, 'permissions')}"><a href="/useradmin/permissions">${_('Permissions')}</a></li>
-			</ul>
-		</div>
-	</div>
+
+<%def name="menubar(section='')">
+  <div class="navbar navbar-inverse navbar-fixed-top">
+      <div class="navbar-inner">
+        <div class="container-fluid">
+          <div class="nav-collapse">
+            <ul class="nav">
+              <li class="currentApp">
+                <a href="/${app_name}">
+                  <img src="/useradmin/static/art/icon_useradmin_24.png" />
+                  ${ _('User Admin') }
+                </a>
+              </li>
+              %if user.is_superuser:
+              <li class="${is_selected(section, 'users')}"><a href="/useradmin/users">${_('Users')}</a></li>
+				      <li class="${is_selected(section, 'groups')}"><a href="/useradmin/groups">${_('Groups')}</a></li>
+				      <li class="${is_selected(section, 'permissions')}"><a href="/useradmin/permissions">${_('Permissions')}</a></li>
+              %endif
+            </ul>
+          </div>
+        </div>
+      </div>
+  </div>
 </%def>
 </%def>
 
 
+
+
 <%def name="commons()">
 <%def name="commons()">
 
 
   <link href="/useradmin/static/css/useradmin.css" rel="stylesheet">
   <link href="/useradmin/static/css/useradmin.css" rel="stylesheet">

+ 3 - 3
apps/useradmin/src/useradmin/templates/list_groups.mako

@@ -22,11 +22,11 @@ from useradmin.models import group_permissions
 
 
 <%namespace name="actionbar" file="actionbar.mako" />
 <%namespace name="actionbar" file="actionbar.mako" />
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="layout" file="layout.mako" />
-${ commonheader(_('Hue Groups'), "useradmin", user, "100px") | n,unicode }
-${layout.menubar(section='groups', _=_)}
+${ commonheader(_('Hue Groups'), "useradmin", user) | n,unicode }
+${layout.menubar(section='groups')}
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
+  <div class="card card-small">
     <h1 class="card-heading simple">${_('Hue Groups')}</h1>
     <h1 class="card-heading simple">${_('Hue Groups')}</h1>
 
 
     <%actionbar:render>
     <%actionbar:render>

+ 3 - 3
apps/useradmin/src/useradmin/templates/list_permissions.mako

@@ -23,11 +23,11 @@ from django.contrib.auth.models import Group
 
 
 <%namespace name="actionbar" file="actionbar.mako" />
 <%namespace name="actionbar" file="actionbar.mako" />
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="layout" file="layout.mako" />
-${ commonheader(_('Hue Permissions'), "useradmin", user, "100px") | n,unicode }
-${layout.menubar(section='permissions', _=_)}
+${ commonheader(_('Hue Permissions'), "useradmin", user) | n,unicode }
+${layout.menubar(section='permissions')}
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
+  <div class="card card-small">
     <h1 class="card-heading simple">${_('Hue Permissions')}</h1>
     <h1 class="card-heading simple">${_('Hue Permissions')}</h1>
     <%actionbar:render>
     <%actionbar:render>
       <%def name="search()">
       <%def name="search()">

+ 3 - 3
apps/useradmin/src/useradmin/templates/list_users.mako

@@ -22,11 +22,11 @@ from django.utils.translation import ugettext as _
 
 
 <%namespace name="actionbar" file="actionbar.mako" />
 <%namespace name="actionbar" file="actionbar.mako" />
 <%namespace name="layout" file="layout.mako" />
 <%namespace name="layout" file="layout.mako" />
-${ commonheader(_('Hue Users'), "useradmin", user, "100px") | n,unicode }
-${layout.menubar(section='users', _=_)}
+${ commonheader(_('Hue Users'), "useradmin", user) | n,unicode }
+${layout.menubar(section='users')}
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <div class="card">
+  <div class="card card-small">
     <h1 class="card-heading simple">${_('Hue Users')}</h1>
     <h1 class="card-heading simple">${_('Hue Users')}</h1>
 
 
     <%actionbar:render>
     <%actionbar:render>

+ 9 - 18
apps/useradmin/static/css/useradmin.css

@@ -25,10 +25,6 @@
   box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
   box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
 }
 }
 
 
-.pull-right {
-  margin: 4px;
-}
-
 .sortable {
 .sortable {
   cursor: pointer;
   cursor: pointer;
 }
 }
@@ -52,11 +48,6 @@ input[type=submit] {
   margin-left: 50px;
   margin-left: 50px;
 }
 }
 
 
-.nav {
-  margin-bottom: 0;
-  margin-top: 20px;
-}
-
 .nav-tabs .active {
 .nav-tabs .active {
   font-weight: bold;
   font-weight: bold;
 }
 }
@@ -66,12 +57,12 @@ input[type=submit] {
 }
 }
 
 
 @media all and (max-height: 800px) {
 @media all and (max-height: 800px) {
-    .form-actions {
-      position: fixed;
-      bottom: 0;
-      left: 0;
-      width: 100%;
-      margin: 0;
-      padding-left: 20px !important;
-    }
-  }
+  .form-actions {
+    position: fixed;
+    bottom: 0;
+    left: 0;
+    width: 100%;
+    margin: 0;
+    padding-left: 20px !important;
+  }
+}

+ 3 - 2
apps/zookeeper/src/zookeeper/templates/clients.mako

@@ -21,10 +21,11 @@
 
 
 <%namespace name="shared" file="shared_components.mako" />
 <%namespace name="shared" file="shared_components.mako" />
 
 
-${ commonheader(_('Clients'), app_name, user, '60px') | n,unicode }
+${ commonheader(_('Clients'), app_name, user) | n,unicode }
+${ shared.menubar() }
 <%
 <%
   _breadcrumbs = [
   _breadcrumbs = [
-    ["ZooKeeper Browser", url('zookeeper:index')],
+    [_("Home"), url('zookeeper:index')],
     [cluster['nice_name'].lower(), url('zookeeper:view', id=cluster['id'])],
     [cluster['nice_name'].lower(), url('zookeeper:view', id=cluster['id'])],
     [host + ":" + port, url('zookeeper:clients', id=cluster['id'], host=host + ":" + port)]
     [host + ":" + port, url('zookeeper:clients', id=cluster['id'], host=host + ":" + port)]
   ]
   ]

+ 3 - 2
apps/zookeeper/src/zookeeper/templates/create.mako

@@ -21,11 +21,12 @@
 
 
 <%namespace name="shared" file="shared_components.mako" />
 <%namespace name="shared" file="shared_components.mako" />
 
 
-${ commonheader("ZooKeeper Browser > Create Znode", app_name, user, '60px') | n,unicode }
+${ commonheader("ZooKeeper Browser > Create Znode", app_name, user) | n,unicode }
+${ shared.menubar() }
 <%
 <%
   _split = path.split("/");
   _split = path.split("/");
   _breadcrumbs = [
   _breadcrumbs = [
-    ["ZooKeeper Browser", url('zookeeper:index')],
+    [_("Home"), url('zookeeper:index')],
     [cluster['nice_name'].lower(), url('zookeeper:view', id=cluster['id'])],
     [cluster['nice_name'].lower(), url('zookeeper:view', id=cluster['id'])],
   ]
   ]
   for idx, p in enumerate(_split):
   for idx, p in enumerate(_split):

+ 3 - 2
apps/zookeeper/src/zookeeper/templates/edit.mako

@@ -21,12 +21,13 @@
 
 
 <%namespace name="shared" file="shared_components.mako" />
 <%namespace name="shared" file="shared_components.mako" />
 
 
-${ commonheader("ZooKeeper Browser > Edit Znode > %s" % path, app_name, user, '60px') | n,unicode }
+${ commonheader("ZooKeeper Browser > Edit Znode > %s" % path, app_name, user) | n,unicode }
+${ shared.menubar() }
 
 
 <%
 <%
   _split = path.split("/");
   _split = path.split("/");
   _breadcrumbs = [
   _breadcrumbs = [
-    ["ZooKeeper Browser", url('zookeeper:index')],
+    [_("Home"), url('zookeeper:index')],
     [cluster['nice_name'].lower(), url('zookeeper:view', id=cluster['id'])],
     [cluster['nice_name'].lower(), url('zookeeper:view', id=cluster['id'])],
   ]
   ]
   for idx, p in enumerate(_split):
   for idx, p in enumerate(_split):

+ 19 - 6
apps/zookeeper/src/zookeeper/templates/index.mako

@@ -21,17 +21,30 @@
 
 
 <%namespace name="shared" file="shared_components.mako" />
 <%namespace name="shared" file="shared_components.mako" />
 
 
-${ commonheader(_('View'), app_name, user, '60px') | n,unicode }
+${ commonheader(_('View'), app_name, user) | n,unicode }
+${ shared.menubar() }
 
 
 <%
 <%
   _breadcrumbs = [
   _breadcrumbs = [
-    ["ZooKeeper Browser", url('zookeeper:index')]
+    ["Home", url('zookeeper:index')]
   ]
   ]
 %>
 %>
 
 
-
+%if len(clusters)==0:
+  <div class="container-fluid">
+    <div class="card">
+      <h1 class="card-heading simple">${ _('There are currently no clusters to browse.') }</h1>
+    <div class="card-body">
+      <p>
+        ${ _('Please contact your administrator to solve this.') }
+        <br/>
+        <br/>
+      </p>
+    </div>
+    </div>
+  </div>
+%else:
 ${ shared.header(_breadcrumbs, clusters) }
 ${ shared.header(_breadcrumbs, clusters) }
-
 % for c in clusters:
 % for c in clusters:
   <h3 class="card-heading simple simpler">${ _('Cluster') } ${ c }</h3>
   <h3 class="card-heading simple simpler">${ _('Cluster') } ${ c }</h3>
   <p>
   <p>
@@ -61,9 +74,9 @@ ${ shared.header(_breadcrumbs, clusters) }
     </tbody>
     </tbody>
   </table>
   </table>
 % endfor
 % endfor
-
-
 ${ shared.footer() }
 ${ shared.footer() }
+%endif
+
 
 
 <script type="text/javascript" charset="utf-8">
 <script type="text/javascript" charset="utf-8">
   $(document).ready(function () {
   $(document).ready(function () {

+ 20 - 1
apps/zookeeper/src/zookeeper/templates/shared_components.mako

@@ -22,7 +22,7 @@
 <%def name="header(breadcrumbs, clusters, withBody=True)">
 <%def name="header(breadcrumbs, clusters, withBody=True)">
   <div class="container-fluid">
   <div class="container-fluid">
   <div class="row-fluid">
   <div class="row-fluid">
-    <div class="card">
+    <div class="card card-small">
       <h1 class="card-heading simple">
       <h1 class="card-heading simple">
         <div class="btn-group pull-right">
         <div class="btn-group pull-right">
           <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
           <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
@@ -69,3 +69,22 @@
 <script src="/zookeeper/static/js/base64.js" type="text/javascript" charset="utf-8"></script>
 <script src="/zookeeper/static/js/base64.js" type="text/javascript" charset="utf-8"></script>
 </%def>
 </%def>
 
 
+<%def name="menubar()">
+  <div class="navbar navbar-inverse navbar-fixed-top nokids">
+      <div class="navbar-inner">
+        <div class="container-fluid">
+          <div class="nav-collapse">
+            <ul class="nav">
+              <li class="currentApp">
+                <a href="/${app_name}">
+                  <img src="/zookeeper/static/art/icon_24.png" />
+                  ${ _('ZooKeeper Browser') }
+                </a>
+               </li>
+            </ul>
+          </div>
+        </div>
+      </div>
+  </div>
+</%def>
+

+ 3 - 2
apps/zookeeper/src/zookeeper/templates/tree.mako

@@ -21,12 +21,13 @@
 
 
 <%namespace name="shared" file="shared_components.mako" />
 <%namespace name="shared" file="shared_components.mako" />
 
 
-${ commonheader("ZooKeeper Browser > Tree > %s > %s" % (cluster['nice_name'], path), app_name, user, '60px') | n,unicode }
+${ commonheader("ZooKeeper Browser > Tree > %s > %s" % (cluster['nice_name'], path), app_name, user) | n,unicode }
+${ shared.menubar() }
 
 
 <%
 <%
   _split = path.split("/");
   _split = path.split("/");
   _breadcrumbs = [
   _breadcrumbs = [
-    ["ZooKeeper Browser", url('zookeeper:index')],
+    [_("Home"), url('zookeeper:index')],
     [cluster['nice_name'].lower(), url('zookeeper:view', id=cluster['id'])],
     [cluster['nice_name'].lower(), url('zookeeper:view', id=cluster['id'])],
   ]
   ]
   for idx, p in enumerate(_split):
   for idx, p in enumerate(_split):

+ 3 - 2
apps/zookeeper/src/zookeeper/templates/view.mako

@@ -21,11 +21,12 @@
 
 
 <%namespace name="shared" file="shared_components.mako" />
 <%namespace name="shared" file="shared_components.mako" />
 
 
-${ commonheader(_('View'), app_name, user, '60px') | n,unicode }
+${ commonheader(_('View'), app_name, user) | n,unicode }
+${ shared.menubar() }
 
 
 <%
 <%
   _breadcrumbs = [
   _breadcrumbs = [
-    ["ZooKeeper Browser", url('zookeeper:index')],
+    [_("Home"), url('zookeeper:index')],
     [cluster['nice_name'].lower(), url('zookeeper:view', id=cluster['id'])]
     [cluster['nice_name'].lower(), url('zookeeper:view', id=cluster['id'])]
   ]
   ]
 %>
 %>

+ 8 - 4
desktop/core/src/desktop/app_template/src/app_name/templates/index.mako

@@ -16,15 +16,19 @@
 ${'<'}%!from desktop.views import commonheader, commonfooter %>
 ${'<'}%!from desktop.views import commonheader, commonfooter %>
 ${'<'}%namespace name="shared" file="shared_components.mako" />
 ${'<'}%namespace name="shared" file="shared_components.mako" />
 
 
-${'$'}{commonheader("${" ".join(word.capitalize() for word in app_name.split("_"))}", "${app_name}", user, "100px") | n,unicode}
+${'$'}{commonheader("${" ".join(word.capitalize() for word in app_name.split("_"))}", "${app_name}", user) | n,unicode}
 ${'$'}{shared.menubar(section='mytab')}
 ${'$'}{shared.menubar(section='mytab')}
 
 
 ${'#'}# Use double hashes for a mako template comment
 ${'#'}# Use double hashes for a mako template comment
 ${'#'}# Main body
 ${'#'}# Main body
 
 
 <div class="container-fluid">
 <div class="container-fluid">
-  <h2>${" ".join(word.capitalize() for word in app_name.split("_"))} app is successfully setup!</h2>
-  ## Pass through literal $
-  <p>It's now ${'$'}{date}.</p>
+  <div class="card">
+    <h2 class="card-heading simple">${" ".join(word.capitalize() for word in app_name.split("_"))} app is successfully setup!</h2>
+    <div class="card-body">
+      ## Pass through literal $
+      <p>It's now ${'$'}{date}.</p>
+    </div>
+  </div>
 </div>
 </div>
 ${'$'}{commonfooter(messages) | n,unicode}
 ${'$'}{commonfooter(messages) | n,unicode}

+ 16 - 6
desktop/core/src/desktop/app_template/src/app_name/templates/shared_components.mako

@@ -23,12 +23,22 @@ def is_selected(section, matcher):
 ${'%>'}
 ${'%>'}
 
 
 ${'<%'}def name="menubar(section='')">
 ${'<%'}def name="menubar(section='')">
-  <div class="subnav subnav-fixed">
-    <div class="container-fluid">
-      <ul class="nav nav-pills">
-        <li class="${'$'}{is_selected(section, 'mytab')}"><a href="#">Tab 1</a></li>
-        <li class="${'$'}{is_selected(section, 'mytab2')}"><a href="#">Tab 2</a></li>
-      </ul>
+  <div class="navbar navbar-inverse navbar-fixed-top nokids">
+    <div class="navbar-inner">
+      <div class="container-fluid">
+        <div class="nav-collapse">
+          <ul class="nav">
+            <li class="currentApp">
+              <a href="/${app_name}">
+                <img src="/${app_name}/static/art/icon_${app_name}_24.png" />
+                ${" ".join(word.capitalize() for word in app_name.split("_"))}
+              </a>
+             </li>
+             <li class="${'$'}{is_selected(section, 'mytab')}"><a href="#">Tab 1</a></li>
+             <li class="${'$'}{is_selected(section, 'mytab2')}"><a href="#">Tab 2</a></li>
+          </ul>
+        </div>
+      </div>
     </div>
     </div>
   </div>
   </div>
 ${'</%'}def>
 ${'</%'}def>

+ 8 - 0
desktop/core/src/desktop/appmanager.py

@@ -194,6 +194,14 @@ class DesktopModuleInfo(object):
 def get_apps(user):
 def get_apps(user):
   return filter(lambda app: user.has_hue_permission(action="access", app=app.display_name), DESKTOP_APPS)
   return filter(lambda app: user.has_hue_permission(action="access", app=app.display_name), DESKTOP_APPS)
 
 
+def get_apps_dict(user=None):
+  if user is not None:
+    apps = get_apps(user)
+  else:
+    apps = DESKTOP_APPS
+
+  return dict([(app.name, app) for app in apps])
+
 def load_libs():
 def load_libs():
   global DESKTOP_MODULES
   global DESKTOP_MODULES
   global DESKTOP_LIBS
   global DESKTOP_LIBS

Деякі файли не було показано, через те що забагато файлів було змінено