11789: Merge branch 'master' into 11789-arvput-exclude-flag
[arvados.git] / apps / workbench / app / views / layouts / body.html.erb
1 <%# Copyright (C) The Arvados Authors. All rights reserved.
2
3 SPDX-License-Identifier: AGPL-3.0 %>
4
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>
13         </button>
14         <% site_name = Rails.configuration.site_name.downcase rescue Rails.application.class.parent_name %>
15         <% if current_user %>
16           <a class="navbar-brand" href="/" data-push=true><%= site_name %></a>
17         <% else %>
18           <span class="navbar-brand"><%= site_name %></span>
19         <% end %>
20       </div>
21
22       <div class="collapse navbar-collapse">
23         <ul class="nav navbar-nav navbar-right">
24
25           <li>
26             <a><i class="rotating loading glyphicon glyphicon-refresh"></i></a>
27           </li>
28
29           <% if current_user %>
30             <% if current_user.is_active %>
31             <li>
32               <form class="navbar-form" role="search"
33                          data-search-modal=
34                          "<%= url_for(
35                           action: 'choose',
36                           controller: 'search',
37                           title: 'Search',
38                           action_name: 'Show',
39                           action_href: url_for(controller: :actions, action: :show),
40                           action_method: 'get',
41                           action_data: {selection_param: 'uuid', success: 'redirect-to-created-object'}.to_json)
42                          %>">
43                 <div class="input-group" style="width: 220px">
44                   <input type="text" class="form-control" placeholder="search">
45                   <a class="input-group-addon"><span class="glyphicon glyphicon-search"></span></a>
46                 </div>
47               </form>
48             </li>
49             <% end %>
50
51             <li class="dropdown notification-menu">
52               <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="notifications-menu">
53                 <span class="badge badge-alert notification-count"><%= user_notifications.length if user_notifications.any? %></span>
54                 <span class="fa fa-lg fa-user"></span>
55                 <span class="caret"></span>
56               </a>
57               <ul class="dropdown-menu" role="menu">
58                 <li role="presentation" class="dropdown-header">
59                   <%= current_user.email %>
60                 </li>
61                 <% if current_user.is_active %>
62                 <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>
63
64                 <li role="menuitem">
65                   <%= link_to virtual_machines_user_path(current_user), role: 'menu-item' do %>
66                     <i class="fa fa-lg fa-terminal fa-fw"></i> Virtual machines
67                   <% end %>
68                 </li>
69                 <li role="menuitem">
70                   <%= link_to repositories_user_path(current_user), role: 'menu-item' do %>
71                     <i class="fa fa-lg fa-code-fork fa-fw"></i> Repositories
72                   <% end %>
73                 </li>
74                 <li role="menuitem"><a href="/current_token" role="menuitem"><i class="fa fa-lg fa-ticket fa-fw"></i> Current token</a></li>
75                 <li role="menuitem">
76                   <%= link_to ssh_keys_user_path(current_user), role: 'menu-item' do %>
77                     <i class="fa fa-lg fa-key fa-fw"></i> SSH keys
78                   <% end %>
79                 </li>
80
81                 <% if Rails.configuration.user_profile_form_fields %>
82                   <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>
83                 <% end %>
84                 <% end %>
85                 <li role="presentation" class="divider"></li>
86                 <li role="menuitem"><a href="<%= logout_path %>" role="menuitem"><i class="fa fa-lg fa-sign-out fa-fw"></i> Log out</a></li>
87                 <% if user_notifications.any? %>
88                   <li role="presentation" class="divider"></li>
89                   <% user_notifications.each_with_index do |n, i| %>
90                     <% if i > 0 %><li class="divider"></li><% end %>
91                     <li class="notification"><%= n.call(self) %></li>
92                   <% end %>
93                 <% end %>
94               </ul>
95             </li>
96
97             <% if current_user.is_admin %>
98               <li class="dropdown">
99                 <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="system-menu">
100                   <span class="fa fa-lg fa-gear"></span>
101                   <span class="caret"></span>
102                 </a>
103                 <ul class="dropdown-menu" role="menu">
104                   <li role="presentation" class="dropdown-header">
105                     Admin Settings
106                   </li>
107                   <li role="menuitem"><a href="/repositories">
108                       <i class="fa fa-lg fa-code-fork fa-fw"></i> Repositories
109                   </a></li>
110                   <li role="menuitem"><a href="/virtual_machines">
111                       <i class="fa fa-lg fa-terminal fa-fw"></i> Virtual machines
112                   </a></li>
113                   <li role="menuitem"><a href="/authorized_keys">
114                       <i class="fa fa-lg fa-key fa-fw"></i> SSH keys
115                   </a></li>
116                   <li role="menuitem"><a href="/api_client_authorizations">
117                       <i class="fa fa-lg fa-ticket fa-fw"></i> API tokens
118                   </a></li>
119                   <li role="menuitem"><a href="/links">
120                       <i class="fa fa-lg fa-arrows-h fa-fw"></i> Links
121                   </a></li>
122                   <li role="menuitem"><a href="/users">
123                       <i class="fa fa-lg fa-user fa-fw"></i> Users
124                   </a></li>
125                   <li role="menuitem"><a href="/groups">
126                       <i class="fa fa-lg fa-users fa-fw"></i> Groups
127                   </a></li>
128                   <li role="menuitem"><a href="/nodes">
129                       <i class="fa fa-lg fa-cloud fa-fw"></i> Compute nodes
130                   </a></li>
131                   <li role="menuitem"><a href="/keep_services">
132                       <i class="fa fa-lg fa-exchange fa-fw"></i> Keep services
133                   </a></li>
134                   <li role="menuitem"><a href="/keep_disks">
135                       <i class="fa fa-lg fa-hdd-o fa-fw"></i> Keep disks
136                   </a></li>
137                 </ul>
138               </li>
139             <% end %>
140           <% else %>
141             <% if Rails.configuration.anonymous_user_token and Rails.configuration.enable_public_projects_page %>
142               <li><%= link_to 'Browse public projects', "/projects/public" %></li>
143             <% end %>
144             <li class="dropdown hover-dropdown login-menu">
145               <a href="<%= arvados_api_client.arvados_login_url(return_to: request.url) %>">Log in</a>
146               <ul class="dropdown-menu">
147                 <li>
148                   <a href="<%= arvados_api_client.arvados_login_url(return_to: request.url) %>">
149                     <span class="fa fa-lg fa-sign-in"></span>
150                     <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>
151                   </a>
152                 </li>
153               </ul>
154             </li>
155           <% end %>
156
157           <li class="dropdown help-menu">
158             <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="arv-help">
159               <span class="fa fa-lg fa-question-circle"></span>
160               <span class="caret"></span>
161             </a>
162             <ul class="dropdown-menu">
163               <li role="presentation" class="dropdown-header">
164                 Help
165               </li>
166               <% if Rails.configuration.enable_getting_started_popup %>
167                 <li>
168                 <%= link_to raw('<i class="fa fa-fw fa-info"></i> Getting Started ...'), "#",
169                      {'data-toggle' => "modal", 'data-target' => '#getting-started-modal-window'}  %>
170                 </li>
171               <% end %>
172               <% if Rails.configuration.arvados_public_data_doc_url %>
173                 <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> Public Pipelines and Data sets'), "#{Rails.configuration.arvados_public_data_doc_url}", target: "_blank" %></li>
174               <% end %>
175               <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> Tutorials and User guide'), "#{Rails.configuration.arvados_docsite}/user", target: "_blank" %></li>
176               <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> API Reference'), "#{Rails.configuration.arvados_docsite}/api", target: "_blank" %></li>
177               <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> SDK Reference'), "#{Rails.configuration.arvados_docsite}/sdk", target: "_blank" %></li>
178               <li role="presentation" class="divider"></li>
179               <li> <%= link_to report_issue_popup_path(popup_type: 'version', current_location: request.url, current_path: request.fullpath, action_method: 'post'),
180                       {class: 'report-issue-modal-window', remote: true, return_to: request.url} do %>
181                        <i class="fa fa-fw fa-support"></i> Show version / debugging info ...
182                       <% end %>
183               </li>
184               <li> <%= link_to report_issue_popup_path(popup_type: 'report', current_location: request.url, current_path: request.fullpath, action_method: 'post'),
185                       {class: 'report-issue-modal-window', remote: true, return_to: request.url} do %>
186                        <i class="fa fa-fw fa-support"></i> Report a problem ...
187                       <% end %>
188               </li>
189             </ul>
190           </li>
191         </ul>
192       </div><!-- /.navbar-collapse -->
193     </nav>
194
195     <% if current_user.andand.is_active %>
196       <%= render partial: 'breadcrumbs' %>
197     <% elsif !current_user %>   <%# anonymous %>
198       <% if (@name_link or @object) and (project_breadcrumbs.any?) %>
199         <nav class="navbar navbar-default breadcrumbs" role="navigation">
200           <ul class="nav navbar-nav navbar-left">
201             <li>
202               <a href="/projects/public">Public Projects</a>
203             </li>
204             <% project_breadcrumbs.each do |p| %>
205               <li class="nav-separator">
206                 <i class="fa fa-lg fa-angle-double-right"></i>
207               </li>
208               <li>
209                 <%= link_to(p.name, project_path(p.uuid), data: {object_uuid: p.uuid, name: 'name'}) %>
210               </li>
211             <% end %>
212           </ul>
213         </nav>
214       <% end %>
215     <% end %>
216
217     <%= render partial: 'browser_unsupported' %><%# requires JS support below %>
218     <%= render partial: 'getting_started/getting_started_popup' %>
219
220     <div id="page-wrapper">
221       <%= yield %>
222     </div>
223   </div>
224
225   <%= yield :footer_html %>
226
227 <div class="modal-container"></div>
228 <div id="report-issue-modal-window"></div>
229 <script src="/browser_unsupported.js"></script>
230
231 <%  if Rails.configuration.enable_getting_started_popup and current_user and !current_user.prefs[:getting_started_shown] and
232        !request.url.include?("/profile") and
233        !request.url.include?("/user_agreements") and
234        !request.url.include?("/inactive")%>
235   <script>
236     $("#getting-started-modal-window").modal('show');
237   </script>
238   <%
239     prefs = current_user.prefs
240     prefs[:getting_started_shown] = Time.now
241     current_user.update_attributes prefs: prefs.to_json
242   %>
243 <% end %>