1 <%# Copyright (C) The Arvados Authors. All rights reserved.
3 SPDX-License-Identifier: AGPL-3.0 %>
5 <div id="wrapper" class="container-fluid">
6 <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
7 <div class="navbar-header">
8 <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
9 <span class="sr-only">Toggle navigation</span>
10 <span class="icon-bar"></span>
11 <span class="icon-bar"></span>
12 <span class="icon-bar"></span>
14 <% site_name = Rails.configuration.Workbench.SiteName.downcase rescue Rails.application.class.parent_name %>
16 <a class="navbar-brand" href="/" data-push=true><%= site_name %></a>
18 <span class="navbar-brand"><%= site_name %></span>
22 <div class="collapse navbar-collapse">
23 <ul class="nav navbar-nav navbar-right">
26 <a><i class="rotating loading glyphicon glyphicon-refresh"></i></a>
30 <% if current_user.is_active %>
31 <% if !Rails.configuration.Workbench.MultiSiteSearch.empty? %>
33 <form class="navbar-form">
35 target = Rails.configuration.Workbench.MultiSiteSearch
37 target = {controller: 'search', action: 'index'}
39 link_to("Multi-site search", target, {class: 'btn btn-default'}) %>
44 <form class="navbar-form" role="search"
51 action_href: url_for(controller: :actions, action: :show),
53 action_data: {selection_param: 'uuid', success: 'redirect-to-created-object'}.to_json)
55 <div class="input-group" style="width: 220px">
56 <input type="text" class="form-control" placeholder="search this site">
57 <a class="input-group-addon"><span class="glyphicon glyphicon-search"></span></a>
63 <li class="dropdown notification-menu">
64 <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="notifications-menu">
65 <span class="badge badge-alert notification-count"><%= user_notifications.length if user_notifications.any? %></span>
66 <span class="fa fa-lg fa-user"></span>
67 <span class="caret"></span>
69 <ul class="dropdown-menu" role="menu">
70 <li role="presentation" class="dropdown-header">
71 <%= current_user.email %>
73 <% if current_user.is_active %>
74 <li role="menuitem"><a href="/projects/<%=current_user.uuid%>" role="menuitem"><i class="fa fa-lg fa-home fa-fw"></i> Home project </a></li>
75 <% if Rails.configuration.Services.Composer.ExternalURL != URI("") %>
77 <form action="<%= Rails.configuration.Services.Composer.ExternalURL.to_s %>" method="GET">
78 <input type="hidden" name="api_token" value="<%= Thread.current[:arvados_api_token] %>" />
79 <button role="menuitem" type="submit">
80 <i class="fa fa-lg fa-share-alt fa-fw"></i> Workflow Composer
85 <% if Rails.configuration.Services.Workbench2.ExternalURL != URI("") %>
88 wb2_url = Rails.configuration.Services.Workbench2.ExternalURL.to_s
90 wb2_url = wb2_url.chop
92 wb2_url += request.fullpath
94 <form action="<%= wb2_url %>" method="GET">
95 <button role="menuitem" type="submit">
96 <i class="fa fa-lg fa-share-square fa-fw"></i> Go to Workbench 2
102 <%= link_to virtual_machines_user_path(current_user), role: 'menu-item' do %>
103 <i class="fa fa-lg fa-terminal fa-fw"></i> Virtual machines
106 <% if Rails.configuration.Workbench.Repositories %>
107 <li role="menuitem"><a href="/repositories" role="menuitem"><i class="fa fa-lg fa-code-fork fa-fw"></i> Repositories </a></li>
109 <li role="menuitem"><a href="/current_token" role="menuitem"><i class="fa fa-lg fa-ticket fa-fw"></i> Current token</a></li>
111 <%= link_to ssh_keys_user_path(current_user), role: 'menu-item' do %>
112 <i class="fa fa-lg fa-key fa-fw"></i> SSH keys
115 <li role="menuitem"><a href="/users/link_account" role="menuitem"><i class="fa fa-lg fa-link fa-fw"></i> Link account </a></li>
116 <% if !Rails.configuration.Workbench.UserProfileFormFields.empty? %>
117 <li role="menuitem"><a href="/users/<%=current_user.uuid%>/profile" role="menuitem"><i class="fa fa-lg fa-user fa-fw"></i> Manage profile</a></li>
120 <li role="presentation" class="divider"></li>
121 <li role="menuitem"><a href="<%= logout_path %>" role="menuitem"><i class="fa fa-lg fa-sign-out fa-fw"></i> Log out</a></li>
122 <% if user_notifications.any? %>
123 <li role="presentation" class="divider"></li>
124 <% user_notifications.each_with_index do |n, i| %>
125 <% if i > 0 %><li class="divider"></li><% end %>
126 <li class="notification"><%= n.call(self) %></li>
132 <% if current_user.is_admin %>
133 <li class="dropdown">
134 <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="system-menu">
135 <span class="fa fa-lg fa-gear"></span>
136 <span class="caret"></span>
138 <ul class="dropdown-menu" role="menu">
139 <li role="presentation" class="dropdown-header">
142 <% if Rails.configuration.Workbench.Repositories %>
143 <li role="menuitem"><a href="/repositories">
144 <i class="fa fa-lg fa-code-fork fa-fw"></i> Repositories
147 <li role="menuitem"><a href="/virtual_machines">
148 <i class="fa fa-lg fa-terminal fa-fw"></i> Virtual machines
150 <li role="menuitem"><a href="/authorized_keys">
151 <i class="fa fa-lg fa-key fa-fw"></i> SSH keys
153 <li role="menuitem"><a href="/api_client_authorizations">
154 <i class="fa fa-lg fa-ticket fa-fw"></i> API tokens
156 <li role="menuitem"><a href="/links">
157 <i class="fa fa-lg fa-arrows-h fa-fw"></i> Links
159 <li role="menuitem"><a href="/users">
160 <i class="fa fa-lg fa-user fa-fw"></i> Users
162 <li role="menuitem"><a href="/groups">
163 <i class="fa fa-lg fa-users fa-fw"></i> Groups
165 <li role="menuitem"><a href="/keep_services">
166 <i class="fa fa-lg fa-exchange fa-fw"></i> Keep services
172 <% if !Rails.configuration.Users.AnonymousUserToken.empty? and Rails.configuration.Workbench.EnablePublicProjectsPage %>
173 <li><%= link_to 'Browse public projects', "/projects/public" %></li>
175 <li class="dropdown hover-dropdown login-menu">
176 <a href="<%= arvados_api_client.arvados_login_url(return_to: request.url) %>">Log in</a>
177 <ul class="dropdown-menu">
179 <a href="<%= arvados_api_client.arvados_login_url(return_to: request.url) %>">
180 <span class="fa fa-lg fa-sign-in"></span>
181 <p style="margin-left: 1.6em; margin-top: -1.35em; margin-bottom: 0em; margin-right: 0.5em;">Log in or register with<br/>any Google account</p>
188 <li class="dropdown help-menu">
189 <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="arv-help">
190 <span class="fa fa-lg fa-question-circle"></span>
191 <span class="caret"></span>
193 <ul class="dropdown-menu">
194 <li role="presentation" class="dropdown-header">
197 <% if Rails.configuration.Workbench.EnableGettingStartedPopup %>
199 <%= link_to raw('<i class="fa fa-fw fa-info"></i> Getting Started ...'), "#",
200 {'data-toggle' => "modal", 'data-target' => '#getting-started-modal-window'} %>
203 <% if !Rails.configuration.Workbench.ArvadosPublicDataDocURL.empty? %>
204 <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> Public Pipelines and Data sets'), "#{Rails.configuration.Workbench.ArvadosPublicDataDocURL}", target: "_blank" %></li>
206 <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> Tutorials and User guide'), "#{Rails.configuration.Workbench.ArvadosDocsite}/user", target: "_blank" %></li>
207 <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> API Reference'), "#{Rails.configuration.Workbench.ArvadosDocsite}/api", target: "_blank" %></li>
208 <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> SDK Reference'), "#{Rails.configuration.Workbench.ArvadosDocsite}/sdk", target: "_blank" %></li>
209 <li role="presentation" class="divider"></li>
210 <li> <%= link_to report_issue_popup_path(popup_type: 'version', current_location: request.url, current_path: request.fullpath, action_method: 'post'),
211 {class: 'report-issue-modal-window', remote: true, return_to: request.url} do %>
212 <i class="fa fa-fw fa-support"></i> Show version / debugging info ...
215 <li> <%= link_to report_issue_popup_path(popup_type: 'report', current_location: request.url, current_path: request.fullpath, action_method: 'post'),
216 {class: 'report-issue-modal-window', remote: true, return_to: request.url} do %>
217 <i class="fa fa-fw fa-support"></i> Report a problem ...
223 </div><!-- /.navbar-collapse -->
226 <% if current_user.andand.is_active %>
227 <%= render partial: 'breadcrumbs' %>
228 <% elsif !current_user %> <%# anonymous %>
229 <% if (@name_link or @object) and (project_breadcrumbs.any?) %>
230 <nav class="navbar navbar-default breadcrumbs" role="navigation">
231 <ul class="nav navbar-nav navbar-left">
233 <a href="/projects/public">Public Projects</a>
235 <% project_breadcrumbs.each do |p| %>
236 <li class="nav-separator">
237 <i class="fa fa-lg fa-angle-double-right"></i>
240 <%= link_to(p.name, project_path(p.uuid), data: {object_uuid: p.uuid, name: 'name'}) %>
248 <% if current_user.andand.is_active %>
249 <div id="deprecation-notice" class="row">
250 <div class="col-md-12">
251 <div class="alert alert-block alert-warning">
252 <span>You are using the <a href="https://doc.arvados.org/user/topics/workbench-migration.html">deprecated Workbench application</a>
253 to access Arvados. A newer Workbench application is available.
254 <form action="<%= wb2_url %>" method="GET">
255 <button type="submit">
256 <i class="fa fa-lg fa-share-square fa-fw"></i> Go to Workbench 2
265 <%= render partial: 'browser_unsupported' %><%# requires JS support below %>
266 <%= render partial: 'getting_started/getting_started_popup' %>
268 <div id="page-wrapper">
273 <%= yield :footer_html %>
275 <div class="modal-container"></div>
276 <div id="report-issue-modal-window"></div>
277 <script src="/browser_unsupported.js"></script>
279 <% if Rails.configuration.Workbench.EnableGettingStartedPopup and current_user and !current_user.prefs[:getting_started_shown] and
280 !request.url.include?("/profile") and
281 !request.url.include?("/user_agreements") and
282 !request.url.include?("/inactive")%>
284 $("#getting-started-modal-window").modal('show');
287 prefs = current_user.prefs
288 prefs[:getting_started_shown] = Time.now
289 current_user.update prefs: prefs.to_json