3138: wiselinks data-push still not working.
[arvados.git] / apps / workbench / app / views / layouts / application.html.erb
index 0ec08ccb726b3df3e8c40574467d3bef8aca3d5e..c8503268c35fcdbaa147de85bcb989e9814bd411 100644 (file)
@@ -14,7 +14,7 @@
   <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
   <meta name="description" content="">
   <meta name="author" content="">
-  <% if current_user %>
+  <% if current_user and $arvados_api_client.discovery[:websocketUrl] %>
   <meta name="arv-websocket-url" content="<%=$arvados_api_client.discovery[:websocketUrl]%>?api_token=<%=Thread.current[:arvados_api_token]%>">
   <% end %>
   <meta name="robots" content="NOINDEX, NOFOLLOW">
     height: 100%;
     }
 
-    body > div.container-fluid {
-    padding-top: 70px; /* 70px to make the container go all the way to the bottom of the navbar */
-    }
-
     @media (max-width: 979px) { body { padding-top: 0; } }
 
-    .navbar .nav li.nav-separator > span.glyphicon.glyphicon-arrow-right {
-    padding-top: 1.25em;
-    }
-
     @media (max-width: 767px) {
     .breadcrumbs {
     display: none;
@@ -51,7 +43,7 @@
   <link href="//netdna.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.css" rel="stylesheet">
 </head>
 <body>
-  <div id="wrapper">
+  <div id="top-nav-wrapper" class="container-fluid">
     <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
       <div class="navbar-header">
         <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
           <span class="icon-bar"></span>
           <span class="icon-bar"></span>
         </button>
-        <a class="navbar-brand" href="/"><%= Rails.configuration.site_name rescue Rails.application.class.parent_name %></a>
+        <a class="navbar-brand" data-push="true" data-target="#top-nav-wrapper" href="/"><%= Rails.configuration.site_name.downcase rescue Rails.application.class.parent_name %></a>
       </div>
 
       <div class="collapse navbar-collapse">
-        <ul class="nav navbar-nav navbar-left breadcrumbs">
-          <% if current_user %>
-            <% if content_for?(:breadcrumbs) %>
-              <%= yield(:breadcrumbs) %>
-            <% else %>
-              <li class="nav-separator"><span class="glyphicon glyphicon-arrow-right"></span></li>
-              <li>
-                <% if @object and \
-                      ((@name_link and (o = Group.find?(@name_link.tail_uuid)))\
-                       or (o = Group.find?(@object.owner_uuid))) %>
-                  <%= link_to(o.name, folder_path(o.uuid)) %>
-                <% else %>
-                  <%= link_to(
-                      controller.controller_name.humanize.downcase,
-                      url_for({controller: params[:controller]})) %>
-                <% end %>
-              </li>
-              <% if params[:action] != 'index' %>
-                <li class="nav-separator">
-                  <span class="glyphicon glyphicon-arrow-right"></span>
-                </li>
-                <li>
-                  <%= link_to_if_arvados_object @object, {friendly_name: true}, {data: {object_uuid: @object.andand.uuid, name: 'name'}} %>
-                </li>
-              <% end %>
-            <% end %>
-          <% end %>
-        </ul>
-
         <ul class="nav navbar-nav navbar-right">
 
           <li>
           </li>
           -->
 
-          <li class="dropdown notification-menu">
-            <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="collections-menu">
-              <span class="glyphicon glyphicon-paperclip"></span>
-              <span class="badge" id="persistent-selection-count"></span>
-              <span class="caret"></span>
-            </a>
-              <ul class="dropdown-menu" role="menu" id="persistent-selection-list">
-                <%= form_tag '/actions' do %>
-                <%= hidden_field_tag 'uuid', @object.andand.uuid %>
-                <div id="selection-form-content"></div>
-                <% end %>
-            </ul>
-          </li>
-
-          <% if current_user.is_active %>
           <li class="dropdown notification-menu">
             <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="notifications-menu">
-              <span class="glyphicon glyphicon-envelope"></span>
               <span class="badge badge-alert notification-count"><%= @notification_count %></span>
-              <span class="caret"></span>
+              <%= current_user.email %>
             </a>
             <ul class="dropdown-menu" role="menu">
-              <% if (@notifications || []).length > 0 %>
+              <% if current_user.is_active %>
+              <li role="presentation"><a href="/authorized_keys" role="menuitem"><i class="fa fa-key fa-fw"></i> Manage ssh keys</a></li>
+              <li role="presentation"><a href="/api_client_authorizations" role="menuitem"><i class="fa fa-ticket fa-fw"></i> Manage API tokens</a></li>
+              <li role="presentation" class="divider"></li>
+              <% end %>
+              <li role="presentation"><a href="<%= logout_path %>" role="menuitem"><i class="fa fa-sign-out fa-fw"></i> Log out</a></li>
+              <% if current_user.is_active and
+                    (@notifications || []).length > 0 %>
+                <li role="presentation" class="divider"></li>
                 <% @notifications.each_with_index do |n, i| %>
                   <% if i > 0 %><li class="divider"></li><% end %>
                   <li class="notification"><%= n.call(self) %></li>
                 <% end %>
-              <% else %>
-                <li class="notification empty">No notifications.</li>
               <% end %>
             </ul>
           </li>
-          <% end %>
 
-          <li class="dropdown">
-            <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="user-menu">
-              <span class="glyphicon glyphicon-user"></span><span class="caret"></span>
+          <li class="dropdown selection-menu">
+            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+              <span class="fa fa-lg fa-paperclip"></span>
+              <span class="badge" id="persistent-selection-count"></span>
             </a>
-            <ul class="dropdown-menu" role="menu">
-              <li role="presentation" class="dropdown-header"><%= current_user.email %></li>
-              <% if current_user.is_active %>
-              <li role="presentation" class="divider"></li>
-              <li role="presentation"><a href="/authorized_keys" role="menuitem"><i class="fa fa-key fa-fw"></i> Manage ssh keys</a></li>
-              <li role="presentation"><a href="/api_client_authorizations" role="menuitem"><i class="fa fa-ticket fa-fw"></i> Manage API tokens</a></li>
-              <li role="presentation" class="divider"></li>
+            <ul class="dropdown-menu" role="menu" id="persistent-selection-list">
+              <%= form_tag '/actions' do %>
+                <%= hidden_field_tag 'uuid', @object.andand.uuid %>
+                <div id="selection-form-content"></div>
               <% end %>
-              <li role="presentation"><a href="<%= logout_path %>" role="menuitem"><i class="fa fa-sign-out fa-fw"></i> Log out</a></li>
             </ul>
           </li>
 
           <% if current_user.is_active %>
             <li class="dropdown">
               <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="system-menu">
-                <span class="glyphicon glyphicon-cog"></span><span class="caret"></span>
+                <span class="fa fa-lg fa-gear"></span>
               </a>
               <ul class="dropdown-menu" role="menu">
-                <li role="presentation" class="dropdown-header">System objects</li>
-                <li role="presentation" class="divider"></li>
+                <li role="presentation" class="dropdown-header">
+                  Settings
+                </li>
                 <li role="presentation"><a href="/repositories">
                     <i class="fa fa-lg fa-code-fork fa-fw"></i> Repositories
                 </a></li>
           <% else %>
             <li><a href="<%= arvados_api_client.arvados_login_url(return_to: root_url) %>">Log in</a></li>
           <% end %>
+
+          <li class="dropdown help-menu">
+            <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="arv-help">
+              <span class="fa fa-lg fa-question-circle"></span>
+            </a>
+            <ul class="dropdown-menu">
+              <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> Tutorials and User guide'), "#{Rails.configuration.arvados_docsite}/user", target: "_blank" %></li>
+              <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> API Reference'), "#{Rails.configuration.arvados_docsite}/api", target: "_blank" %></li>
+              <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> SDK Reference'), "#{Rails.configuration.arvados_docsite}/sdk", target: "_blank" %></li>
+            </ul>
+          </li>
         </ul>
       </div><!-- /.navbar-collapse -->
     </nav>
 
+    <% if current_user.andand.is_active %>
+      <nav class="navbar navbar-default breadcrumbs" role="navigation">
+        <ul class="nav navbar-nav navbar-left">
+          <li class="dropdown">
+            <%= render partial: "projects_tree_menu", locals: {
+                  :project_link_to => Proc.new do |pnode, &block|
+                    link_to(project_path(pnode[:object].uuid), data: {object_uuid: pnode[:object].uuid, name: 'name'}, &block)
+                  end,
+                  :top_button => Proc.new do %>
+                    <% link_to projects_path('project[owner_uuid]' => current_project_uuid), method: 'post', class: 'btn btn-xs btn-default pull-right' do %>
+                      <i class="fa fa-plus"></i> New project
+                    <% end %>
+                  <% end %>
+            <% } %>
+          </li>
+          <% project_breadcrumbs.each do |p| %>
+            <li class="nav-separator">
+              <i class="fa fa-lg fa-angle-double-right"></i>
+            </li>
+            <li>
+              <%= link_to(p.name, project_path(p.uuid), data: {object_uuid: p.uuid, name: 'name'}) %>
+            </li>
+          <% end %>
+        </ul>
+      </nav>
+    <% end %>
+
     <div id="page-wrapper">
       <%= yield %>
     </div>
   </div>
 
-</div>
-
   <%= yield :footer_html %>
   <%= piwik_tracking_tag %>
   <%= javascript_tag do %>