6 <% if content_for? :page_title %>
7 <%= yield :page_title %> / <%= Rails.configuration.site_name %>
9 <%= Rails.configuration.site_name %>
12 <meta name="viewport" content="width=device-width, initial-scale=1.0">
13 <link rel="icon" href="/favicon.ico" type="image/x-icon">
14 <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
15 <meta name="description" content="">
16 <meta name="author" content="">
17 <%= stylesheet_link_tag "application", :media => "all" %>
18 <%= javascript_include_tag "application" %>
21 <%= javascript_tag do %>
31 body > div.container-fluid {
32 padding-top: 70px; /* 70px to make the container go all the way to the bottom of the navbar */
35 body > div.container-fluid > div.col-sm-9.col-sm-offset-3 {
39 @media (max-width: 979px) { body { padding-top: 0; } }
41 .navbar .nav li.nav-separator > span.glyphicon.glyphicon-arrow-right {
45 /* Setting the height needs to be fixed with javascript. */
53 @media (min-width: 768px) {
58 @media (max-width: 767px) {
63 .arvados-nav-container {
65 height: calc(100% - 70px);
70 background: rgb(66, 139, 202);
72 .arvados-nav-active a {
79 <div class="navbar navbar-default navbar-fixed-top">
80 <div class="container-fluid">
81 <div class="navbar-header">
82 <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#workbench-navbar.navbar-collapse">
83 <span class="sr-only">Toggle navigation</span>
84 <span class="icon-bar"></span>
85 <span class="icon-bar"></span>
86 <span class="icon-bar"></span>
88 <a class="navbar-brand" href="/"><%= Rails.configuration.site_name rescue Rails.application.class.parent_name %></a>
91 <div class="collapse navbar-collapse" id="workbench-navbar">
92 <ul class="nav navbar-nav navbar-left breadcrumbs">
94 <% if content_for?(:breadcrumbs) %>
95 <%= yield(:breadcrumbs) %>
97 <li class="nav-separator"><span class="glyphicon glyphicon-arrow-right"></span></li>
100 controller.model_class.to_s.pluralize.underscore.gsub('_', ' '),
101 url_for({controller: params[:controller]})) %>
103 <% if params[:action] != 'index' %>
104 <li class="nav-separator">
105 <span class="glyphicon glyphicon-arrow-right"></span>
108 <%= link_to controller.breadcrumb_page_name, request.fullpath %>
115 <ul class="nav navbar-nav navbar-right">
118 <a><i class="rotating loading glyphicon glyphicon-refresh"></i></a>
121 <% if current_user %>
122 <!-- XXX placeholder for this when search is implemented
124 <form class="navbar-form" role="search">
125 <div class="input-group" style="width: 220px">
126 <input type="text" class="form-control" placeholder="search">
127 <span class="input-group-addon"><span class="glyphicon glyphicon-search"></span></span>
133 <!-- XXX placeholder for this when persistent selection is implemented
134 <li class="dropdown">
135 <a href="#" class="dropdown-toggle" data-toggle="dropdown">
136 <span class="glyphicon glyphicon-paperclip"></span>
137 <span class="badge badge-alert"><%= @selection_count %></span>
138 <span class="caret"></span>
140 <ul class="dropdown-menu" role="menu">
141 <li style="padding: 10px">No selections.</li>
146 <li class="dropdown notification-menu">
147 <a href="#" class="dropdown-toggle" data-toggle="dropdown">
148 <span class="glyphicon glyphicon-envelope"></span>
149 <span class="badge badge-alert notification-count"><%= @notification_count %></span>
150 <span class="caret"></span>
152 <ul class="dropdown-menu" role="menu">
153 <% if @notifications.length > 0 %>
154 <% @notifications.each_with_index do |n, i| %>
155 <% if i > 0 %><li class="divider"></li><% end %>
156 <li class="notification"><%= n.call(self) %></li>
159 <li class="notification empty">No notifications.</li>
164 <li class="dropdown">
165 <a href="#" class="dropdown-toggle" data-toggle="dropdown">
166 <span class="glyphicon glyphicon-user"></span><span class="caret"></span>
168 <ul class="dropdown-menu" role="menu">
169 <li role="presentation" class="dropdown-header"><%= current_user.email %></li>
170 <li role="presentation" class="divider"></li>
171 <li role="presentation"><a href="/authorized_keys" role="menuitem">Manage ssh keys</a></li>
172 <li role="presentation"><a href="/api_client_authorizations" role="menuitem">Manage API tokens</a></li>
173 <li role="presentation" class="divider"></li>
174 <li role="presentation"><a href="<%= logout_path %>" role="menuitem">Log out</a></li>
178 <li><a href="<%= $arvados_api_client.arvados_login_url(return_to: root_url) %>">Log in</a></li>
181 </div><!-- /.navbar-collapse -->
182 </div><!-- /.container-fluid -->
185 <div class="container-fluid">
186 <div class="col-sm-9 col-sm-offset-3">
191 <div class="col-sm-3 left-nav">
192 <div class="arvados-nav-container">
193 <% if current_user %>
195 <ul class="arvados-nav">
196 <li class="<%= 'arvados-nav-active' if params[:action] == 'home' %>">
197 <a href="/">Dashboard</a>
200 <% [['Data', [['humans'],
203 ['collections', 'Files'],
204 ['links', 'Metadata']]],
205 ['Compute', [['pipeline_templates', 'Pipelines'],
206 ['repositories', 'Code repositories'],
207 ['virtual_machines']]],
208 ['Activity', [['pipeline_instances', 'Recent pipelines'],
209 ['jobs', 'Recent jobs']]],
210 ['System', [['users'],
212 ['nodes', 'Compute nodes'],
213 ['keep_disks']]]].each do |j| %>
216 <% j[1].each do |k| %>
217 <% unless k[0] == 'users' and !current_user.andand.is_admin %>
218 <li class="<%= 'arvados-nav-active' if (params[:controller] == k[0] && params[:action] != 'home') %>">
219 <a href="/<%= k[0] %>">
220 <%= if k[1] then k[1] else k[0].capitalize.gsub('_', ' ') end %>
231 <li><%= link_to 'Tutorials and User guide', "#{Rails.configuration.arvados_docsite}/user", target: "_blank" %></li>
232 <li><%= link_to 'API Reference', "#{Rails.configuration.arvados_docsite}/api", target: "_blank" %></li>
233 <li><%= link_to 'SDK Reference', "#{Rails.configuration.arvados_docsite}/sdk", target: "_blank" %></li>
234 <li><%= link_to 'Admin guide', "#{Rails.configuration.arvados_docsite}/admin", target: "_blank" %></li>
244 <%= piwik_tracking_tag %>
245 <%= javascript_tag do %>
246 <%= yield :footer_js %>