X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/f3d919829c017376eeccd27db9908b7f5a6e32aa..a9b4a906124081439326fedc1a1e73fae9c2f40b:/apps/workbench/app/views/layouts/application.html.erb diff --git a/apps/workbench/app/views/layouts/application.html.erb b/apps/workbench/app/views/layouts/application.html.erb index f186fda148..cdc47c1716 100644 --- a/apps/workbench/app/views/layouts/application.html.erb +++ b/apps/workbench/app/views/layouts/application.html.erb @@ -1,5 +1,5 @@ - + @@ -14,11 +14,17 @@ <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"> <meta name="description" content=""> <meta name="author" content=""> + <% 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"> <%= stylesheet_link_tag "application", :media => "all" %> <%= javascript_include_tag "application" %> <%= csrf_meta_tags %> <%= yield :head %> <%= javascript_tag do %> + angular.module('Arvados').value('arvadosApiToken', '<%=Thread.current[:arvados_api_token]%>'); + angular.module('Arvados').value('arvadosDiscoveryUri', '<%= Rails.configuration.arvados_v1_base.sub '/arvados/v1', '/discovery/v1/apis/arvados/v1/rest' %>'); <%= yield :js %> <% end %> <style> @@ -28,215 +34,21 @@ height: 100%; } - body > div.container-fluid { - padding-top: 70px; /* 70px to make the container go all the way to the bottom of the navbar */ - } - - body > div.container-fluid > div.col-sm-9.col-sm-offset-3 { - overflow: auto; - } - @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; } - - /* Setting the height needs to be fixed with javascript. */ - .dropdown-menu { - padding-right: 20px; - max-height: 440px; - width: 400px; - overflow-y: auto; - } - - .arvados-nav-container { - position: fixed; - top: 70px; - height: calc(100% - 70px); - overflow: auto; - z-index: 2; - } - .arvados-nav-active { - background: rgb(66, 139, 202); - } - .arvados-nav-active a { - color: white; } </style> + <link href="//netdna.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.css" rel="stylesheet"> + <%= piwik_tracking_tag if (PiwikAnalytics.configuration.url != 'localhost' rescue false) %> </head> <body> - - <div class="navbar navbar-default navbar-fixed-top"> - <div class="container-fluid"> - <ul class="nav navbar-nav navbar-left"> - <li><a class="navbar-brand" href="/"><%= Rails.configuration.site_name rescue Rails.application.class.parent_name %></a></li> - <% if current_user %> - <li class="nav-separator"><span class="glyphicon glyphicon-arrow-right"></span></li> - <% if content_for?(:breadcrumbs) %> - <%= yield(:breadcrumbs) %> - <% else %> - <li> - <%= link_to( - controller.model_class.to_s.pluralize.underscore.gsub('_', ' '), - url_for({controller: params[:controller]})) %> - </li> - <% if params[:action] != 'index' %> - <li class="nav-separator"> - <span class="glyphicon glyphicon-arrow-right"></span> - </li> - <li> -<%= link_to controller.breadcrumb_page_name, request.fullpath %> - </li> - <% end %> - <% end %> - <% end %> - </ul> - - <ul class="nav navbar-nav navbar-right"> - - <% if current_user %> - <li> - <div class="loading" style="transform: translate(-20px,20px) scale(0.1,0.1); -ms-transform: translate(-20px,20px) scale(0.1,0.1); -webkit-transform: translate(-20px,20px) scale(0.1,0.1); display: none"> - <%= render partial: 'loading' %> - </div> - </li> - - <!-- XXX placeholder for this when search is implemented - <li> - <form class="navbar-form" role="search"> - <div class="input-group" style="width: 220px"> - <input type="text" class="form-control" placeholder="search"> - <span class="input-group-addon"><span class="glyphicon glyphicon-search"></span></span> - </div> - </form> - </li> - --> - - <!-- XXX placeholder for this when persistent selection is implemented - <li class="dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown"> - <span class="glyphicon glyphicon-paperclip"></span> - <span class="badge"><%= @selection_count %></span> - <span class="caret"></span> - </a> - <ul class="dropdown-menu" role="menu"> - <li style="padding: 10px">No selections.</li> - </ul> - </li> - --> - - <li class="dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown"> - <span class="glyphicon glyphicon-envelope"></span> - <span class="badge"><%= @notification_count %></span> - <span class="caret"></span> - </a> - <ul class="dropdown-menu" role="menu"> - <% if @notifications.length > 0 %> - <% @notifications.each do |n| %> - <li style="padding: 10px"><%= n.call(self) %></li> - <li class="divider"></li> - <% end %> - <% else %> - <li style="padding: 10px">No notifications.</li> - <% end %> - </ul> - </li> - - <li class="dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown"> - <span class="glyphicon glyphicon-user"></span><span class="caret"></span> - </a> - <ul class="dropdown-menu" role="menu"> - <li role="presentation" class="dropdown-header"><%= current_user.email %></li> - <li role="presentation" class="divider"></li> - <li role="presentation"><a href="/authorized_keys" role="menuitem">Manage ssh keys</a></li> - <li role="presentation"><a href="/api_client_authorizations" role="menuitem">Manage API tokens</a></li> - <li role="presentation" class="divider"></li> - <li role="presentation"><a href="<%= logout_path %>" role="menuitem">Log out</a></li> - </ul> - </li> - <% else -%> - <li><a href="<%= $arvados_api_client.arvados_login_url(return_to: root_url) %>">Log in</a></li> - <% end -%> - </ul> - </div> - </div> - - <div class="container-fluid"> - <div class="col-sm-3"> - <div class="left-nav arvados-nav-container"> - <% if current_user %> - <div class="well"> - <ul class="arvados-nav"> - <li><a href="/">Dashboard</a></li> - - <% [['Data', [['humans'], - ['traits'], - ['specimens'], - ['collections', 'Files'], - ['links', 'Metadata']]], - ['Compute', [['pipeline_templates', 'Pipelines'], - ['repositories', 'Code repositories'], - ['virtual_machines']]], - ['Activity', [['pipeline_instances', 'Recent pipelines'], - ['jobs', 'Recent jobs']]]].each do |j| %> - <li><%= j[0] %> - <ul> - <% j[1].each do |k| %> - <li class="<%= 'arvados-nav-active' if params[:controller] == k[0] %>"> - <a href="/<%= k[0] %>"> - <%= if k[1] then k[1] else k[0].capitalize.gsub('_', ' ') end %> - </a> - </li> - <% end %> - </ul> - </li> - <% end %> - - <li>Help - <ul> - <li><%= link_to 'Tutorials and User guide', "#{Rails.configuration.arvados_docsite}/user", target: "_blank" %></li> - <li><%= link_to 'API Reference', "#{Rails.configuration.arvados_docsite}/api", target: "_blank" %></li> - <li><%= link_to 'SDK Reference', "#{Rails.configuration.arvados_docsite}/sdk", target: "_blank" %></li> - <li><%= link_to 'Admin guide', "#{Rails.configuration.arvados_docsite}/admin", target: "_blank" %></li> - </ul> - </li> - <% if current_user.andand.is_admin %> - - <% [['Admin', [['users'], - ['groups'], - ['nodes', 'Compute nodes'], - ['keep_disks']]]].each do |j| %> - <li><%= j[0] %> - <ul> - <% j[1].each do |k| %> - <li class="<%= "arvados-nav-active" if params[:controller] == k[0] %>"> - <a href="/<%= k[0] %>"> - <%= if k[1] then k[1] else k[0].capitalize.gsub('_', ' ') end %> - </a> - </li> - <% end %> - </ul> - </li> - <% end %> - <% end %> - </ul> - </div> - <% end %> - </div> - </div> - <div class="col-sm-9 col-sm-offset-3"> - <div id="content"> - <%= yield %> - </div> - </div> - </div> - - <%= piwik_tracking_tag %> - <%= javascript_tag do %> - <%= yield :footer_js %> - <% end %> +<%= render template: 'layouts/body' %> +<%= javascript_tag do %> +<%= yield :footer_js %> +<% end %> </body> </html>