X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/2dc7f15f81ea7f460114482614d8ec5814c36fbf..0eb72b526bf8bbb011551ecf019f604e17a534f1:/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 660d2dc497..71b1cd1598 100644 --- a/apps/workbench/app/views/layouts/application.html.erb +++ b/apps/workbench/app/views/layouts/application.html.erb @@ -1,5 +1,9 @@ +<%# Copyright (C) The Arvados Authors. All rights reserved. + +SPDX-License-Identifier: AGPL-3.0 %> + - + @@ -14,11 +18,33 @@ <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"> + + <%# Feature #5645: Add open graph meta tags to generate this page's + social graph that search engines can use. http://ogp.me/ %> + <meta property="og:type" content="article" /> + <meta property="og:url" content="<%= request.url %>" /> + <meta property="og:site_name" content="<%= Rails.configuration.site_name %>" /> + <% if @object %> + <% if @object.respond_to?(:name) and @object.name.present? %> + <meta property="og:title" content="<%= @object.name%>" /> + <% end %> + <% if (@object.respond_to?(:description) rescue nil) and @object.description.present? %> + <meta property="og:description" content="<%= @object.description%>" /> + <% end %> + <% end %> + <%# Done adding open graph meta tags %> + <%= 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,231 +54,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 */ - } - @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; - } + .breadcrumbs { + padding-top: 0; + } } </style> - <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet"> + <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 id="wrapper"> - <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="sr-only">Toggle navigation</span> - <span class="icon-bar"></span> - <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> - </div> - - <div class="collapse navbar-collapse"> - <% if current_user.andand.is_active %> - <ul class="nav navbar-nav side-nav"> - - <li class="<%= 'arvados-nav-active' if params[:action] == 'home' %>"> - <a href="/"><i class="fa fa-lg fa-dashboard fa-fw"></i> Dashboard</a> - </li> - - <li class="dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-lg fa-hand-o-up fa-fw"></i> Help <b class="caret"></b></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> - - <li class="dropdown"> - <a href="/folders" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-lg fa-folder-o fa-fw"></i> Folders <b class="caret"></b></a> - <ul class="dropdown-menu"> - <li><%= link_to raw('<i class="fa fa-plus fa-fw"></i> Create new folder'), folders_path, method: :post %></li> - <% @my_top_level_folders.call[0..7].each do |folder| %> - <li><%= link_to raw('<i class="fa fa-folder-open fa-fw"></i> ') + folder.name, folder_path(folder) %></li> - <% end %> - <li><a href="/folders"> - <i class="fa fa-ellipsis-h fa-fw"></i> Show all folders - </a></li> - </ul> - </li> - <li><a href="/collections"> - <i class="fa fa-lg fa-briefcase fa-fw"></i> Collections (data files) - </a></li> - <li><a href="/jobs"> - <i class="fa fa-lg fa-tasks fa-fw"></i> Jobs - </a></li> - <li><a href="/pipeline_instances"> - <i class="fa fa-lg fa-tasks fa-fw"></i> Pipeline instances - </a></li> - <li><a href="/pipeline_templates"> - <i class="fa fa-lg fa-gears fa-fw"></i> Pipeline templates - </a></li> - <li> </li> - <li><a href="/repositories"> - <i class="fa fa-lg fa-code-fork fa-fw"></i> Repositories - </a></li> - <li><a href="/virtual_machines"> - <i class="fa fa-lg fa-terminal fa-fw"></i> Virtual machines - </a></li> - <li><a href="/humans"> - <i class="fa fa-lg fa-male fa-fw"></i> Humans - </a></li> - <li><a href="/specimens"> - <i class="fa fa-lg fa-flask fa-fw"></i> Specimens - </a></li> - <li><a href="/traits"> - <i class="fa fa-lg fa-clipboard fa-fw"></i> Traits - </a></li> - <li><a href="/links"> - <i class="fa fa-lg fa-arrows-h fa-fw"></i> Links - </a></li> - <% if current_user.andand.is_admin %> - <li><a href="/users"> - <i class="fa fa-lg fa-user fa-fw"></i> Users - </a></li> - <% end %> - <li><a href="/groups"> - <i class="fa fa-lg fa-users fa-fw"></i> Groups - </a></li> - <li><a href="/nodes"> - <i class="fa fa-lg fa-cloud fa-fw"></i> Compute nodes - </a></li> - <li><a href="/keep_services"> - <i class="fa fa-lg fa-exchange fa-fw"></i> Keep services - </a></li> - <li><a href="/keep_disks"> - <i class="fa fa-lg fa-hdd-o fa-fw"></i> Keep disks - </a></li> - </ul> - <% end %> - - <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> - <%= link_to( - controller.controller_name.humanize.downcase, - 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_if_arvados_object @object, {friendly_name: true}, {data: {object_uuid: @object.andand.uuid, name: 'name'}} %> - </li> - <li style="padding: 14px 0 14px"> - <%= form_tag do |f| %> - <%= render :partial => "selection_checkbox", :locals => {:object => @object} %> - <% end %> - </li> - <% end %> - <% end %> - <% end %> - </ul> - - <ul class="nav navbar-nav navbar-right"> - - <li> - <a><i class="rotating loading glyphicon glyphicon-refresh"></i></a> - </li> - - <% if current_user %> - <!-- 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> - --> - - <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> - </a> - <ul class="dropdown-menu" role="menu"> - <% if (@notifications || []).length > 0 %> - <% @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> - </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> - <% 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> - <% else %> - <li><a href="<%= arvados_api_client.arvados_login_url(return_to: root_url) %>">Log in</a></li> - <% end %> - </ul> - </div><!-- /.navbar-collapse --> - </nav> - - <div id="page-wrapper"> - <%= yield %> - </div> - </div> - -</div> - - <%= yield :footer_html %> - <%= piwik_tracking_tag %> - <%= javascript_tag do %> - <%= yield :footer_js %> - <% end %> - +<%= render template: 'layouts/body' %> +<%= javascript_tag do %> +<%= yield :footer_js %> +<% end %> </body> </html>