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