Merge branch 'master' into 2751-python-sdk-keep-proxy-support
[arvados.git] / apps / workbench / app / views / layouts / application.html.erb
1 <!DOCTYPE html>
2 <html>
3 <head>
4   <meta charset="utf-8">
5   <title>
6     <% if content_for? :page_title %>
7     <%= yield :page_title %> / <%= Rails.configuration.site_name %>
8     <% else %>
9     <%= Rails.configuration.site_name %>
10     <% end %>
11   </title>
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" %>
19   <%= csrf_meta_tags %>
20   <%= yield :head %>
21   <%= javascript_tag do %>
22   <%= yield :js %>
23   <% end %>
24   <style>
25     <%= yield :css %>
26     body {
27     min-height: 100%;
28     height: 100%;
29     }
30
31     body > div.container-fluid {
32     padding-top: 70px; /* 70px to make the container go all the way to the bottom of the navbar */
33     }
34
35     @media (max-width: 979px) { body { padding-top: 0; } }
36
37     .navbar .nav li.nav-separator > span.glyphicon.glyphicon-arrow-right {
38     padding-top: 1.25em;
39     }
40
41     @media (max-width: 767px) {
42     .breadcrumbs {
43     display: none;
44     }
45     }
46   </style>
47   <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
48 </head>
49 <body>
50   <div id="wrapper">
51     <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
52       <div class="navbar-header">
53         <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
54           <span class="sr-only">Toggle navigation</span>
55           <span class="icon-bar"></span>
56           <span class="icon-bar"></span>
57           <span class="icon-bar"></span>
58         </button>
59         <a class="navbar-brand" href="/"><%= Rails.configuration.site_name rescue Rails.application.class.parent_name %></a>
60       </div>
61
62       <div class="collapse navbar-collapse">
63         <% if current_user.andand.is_active %>
64           <ul class="nav navbar-nav side-nav">
65
66             <li class="<%= 'arvados-nav-active' if params[:action] == 'home' %>">
67               <a href="/"><i class="fa fa-lg fa-dashboard fa-fw"></i> Dashboard</a>
68             </li>
69
70             <li class="dropdown">
71               <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>
72               <ul class="dropdown-menu">
73                 <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> Tutorials and User guide'), "#{Rails.configuration.arvados_docsite}/user", target: "_blank" %></li>
74                 <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> API Reference'), "#{Rails.configuration.arvados_docsite}/api", target: "_blank" %></li>
75                 <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> SDK Reference'), "#{Rails.configuration.arvados_docsite}/sdk", target: "_blank" %></li>
76               </ul>
77             </li>
78
79             <li class="dropdown">
80               <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>
81               <ul class="dropdown-menu">
82                 <li><%= link_to raw('<i class="fa fa-plus fa-fw"></i> Create new folder'), folders_path, method: :post %></li>
83                 <% @my_top_level_folders.call[0..7].each do |folder| %>
84                 <li><%= link_to raw('<i class="fa fa-folder-open fa-fw"></i> ') + folder.name, folder_path(folder) %></li>
85                 <% end %>
86                 <li><a href="/folders">
87                     <i class="fa fa-ellipsis-h fa-fw"></i> Show all folders
88                 </a></li>
89               </ul>
90             </li>
91             <li><a href="/collections">
92                 <i class="fa fa-lg fa-briefcase fa-fw"></i> Collections (data files)
93             </a></li>
94             <li><a href="/jobs">
95                 <i class="fa fa-lg fa-tasks fa-fw"></i> Jobs
96             </a></li>
97             <li><a href="/pipeline_instances">
98                 <i class="fa fa-lg fa-tasks fa-fw"></i> Pipeline instances
99             </a></li>
100             <li><a href="/pipeline_templates">
101                 <i class="fa fa-lg fa-gears fa-fw"></i> Pipeline templates
102             </a></li>
103             <li>&nbsp;</li>
104             <li><a href="/repositories">
105                 <i class="fa fa-lg fa-code-fork fa-fw"></i> Repositories
106             </a></li>
107             <li><a href="/virtual_machines">
108                 <i class="fa fa-lg fa-terminal fa-fw"></i> Virtual machines
109             </a></li>
110             <li><a href="/humans">
111                 <i class="fa fa-lg fa-male fa-fw"></i> Humans
112             </a></li>
113             <li><a href="/specimens">
114                 <i class="fa fa-lg fa-flask fa-fw"></i> Specimens
115             </a></li>
116             <li><a href="/traits">
117                 <i class="fa fa-lg fa-clipboard fa-fw"></i> Traits
118             </a></li>
119             <li><a href="/links">
120                 <i class="fa fa-lg fa-arrows-h fa-fw"></i> Links
121             </a></li>
122             <% if current_user.andand.is_admin %>
123               <li><a href="/users">
124                   <i class="fa fa-lg fa-user fa-fw"></i> Users
125               </a></li>
126             <% end %>
127             <li><a href="/groups">
128                 <i class="fa fa-lg fa-users fa-fw"></i> Groups
129             </a></li>
130             <li><a href="/nodes">
131                 <i class="fa fa-lg fa-cogs fa-fw"></i> Compute nodes
132             </a></li>
133             <li><a href="/keep_disks">
134                 <i class="fa fa-lg fa-hdd-o fa-fw"></i> Keep disks
135             </a></li>
136           </ul>
137         <% end %>
138
139         <ul class="nav navbar-nav navbar-left breadcrumbs">
140           <% if current_user %>
141             <% if content_for?(:breadcrumbs) %>
142               <%= yield(:breadcrumbs) %>
143             <% else %>
144               <li class="nav-separator"><span class="glyphicon glyphicon-arrow-right"></span></li>
145               <li>
146                 <%= link_to(
147                             controller.controller_name.humanize.downcase,
148                             url_for({controller: params[:controller]})) %>
149               </li>
150               <% if params[:action] != 'index' %>
151                 <li class="nav-separator">
152                   <span class="glyphicon glyphicon-arrow-right"></span>
153                 </li>
154                 <li>
155                   <%= link_to_if_arvados_object @object, {friendly_name: true}, {data: {object_uuid: @object.andand.uuid, name: 'name'}} %>
156                 </li>
157                 <li style="padding: 14px 0 14px">
158                   <%= form_tag do |f| %>
159                     <%= render :partial => "selection_checkbox", :locals => {:object => @object} %>
160                   <% end %>
161                 </li>
162               <% end %>
163             <% end %>
164           <% end %>
165         </ul>
166
167         <ul class="nav navbar-nav navbar-right">
168
169           <li>
170             <a><i class="rotating loading glyphicon glyphicon-refresh"></i></a>
171           </li>
172
173           <% if current_user %>
174           <!-- XXX placeholder for this when search is implemented
175           <li>
176             <form class="navbar-form" role="search">
177               <div class="input-group" style="width: 220px">
178                 <input type="text" class="form-control" placeholder="search">
179                 <span class="input-group-addon"><span class="glyphicon glyphicon-search"></span></span>
180               </div>
181             </form>
182           </li>
183           -->
184
185           <li class="dropdown notification-menu">
186             <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="collections-menu">
187               <span class="glyphicon glyphicon-paperclip"></span>
188               <span class="badge" id="persistent-selection-count"></span>
189               <span class="caret"></span>
190             </a>
191               <ul class="dropdown-menu" role="menu" id="persistent-selection-list">
192                 <%= form_tag '/actions' do %>
193                 <%= hidden_field_tag 'uuid', @object.andand.uuid %>
194                 <div id="selection-form-content"></div>
195                 <% end %>
196             </ul>
197           </li>
198
199           <% if current_user.is_active %>
200           <li class="dropdown notification-menu">
201             <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="notifications-menu">
202               <span class="glyphicon glyphicon-envelope"></span>
203               <span class="badge badge-alert notification-count"><%= @notification_count %></span>
204               <span class="caret"></span>
205             </a>
206             <ul class="dropdown-menu" role="menu">
207               <% if (@notifications || []).length > 0 %>
208                 <% @notifications.each_with_index do |n, i| %>
209                   <% if i > 0 %><li class="divider"></li><% end %>
210                   <li class="notification"><%= n.call(self) %></li>
211                 <% end %>
212               <% else %>
213                 <li class="notification empty">No notifications.</li>
214               <% end %>
215             </ul>
216           </li>
217           <% end %>
218
219           <li class="dropdown">
220             <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="user-menu">
221               <span class="glyphicon glyphicon-user"></span><span class="caret"></span>
222             </a>
223             <ul class="dropdown-menu" role="menu">
224               <li role="presentation" class="dropdown-header"><%= current_user.email %></li>
225               <% if current_user.is_active %>
226               <li role="presentation" class="divider"></li>
227               <li role="presentation"><a href="/authorized_keys" role="menuitem"><i class="fa fa-key fa-fw"></i> Manage ssh keys</a></li>
228               <li role="presentation"><a href="/api_client_authorizations" role="menuitem"><i class="fa fa-ticket fa-fw"></i> Manage API tokens</a></li>
229               <li role="presentation" class="divider"></li>
230               <% end %>
231               <li role="presentation"><a href="<%= logout_path %>" role="menuitem"><i class="fa fa-sign-out fa-fw"></i> Log out</a></li>
232             </ul>
233           </li>
234           <% else %>
235             <li><a href="<%= arvados_api_client.arvados_login_url(return_to: root_url) %>">Log in</a></li>
236           <% end %>
237         </ul>
238       </div><!-- /.navbar-collapse -->
239     </nav>
240
241     <div id="page-wrapper">
242       <%= yield %>
243     </div>
244   </div>
245
246 </div>
247
248   <%= yield :footer_html %>
249   <%= piwik_tracking_tag %>
250   <%= javascript_tag do %>
251   <%= yield :footer_js %>
252   <% end %>
253
254 </body>
255 </html>