Browse Source

HUE-1535 [core] Restructure top bar

New look of the top bar
Enrico Berti 12 năm trước cách đây
mục cha
commit
beb9a9a891
100 tập tin đã thay đổi với 576 bổ sung272 xóa
  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

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác