3235: Show project filter by default (i.e., unless by_project=false).
[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   <% if current_user and $arvados_api_client.discovery[:websocketUrl] %>
18   <meta name="arv-websocket-url" content="<%=$arvados_api_client.discovery[:websocketUrl]%>?api_token=<%=Thread.current[:arvados_api_token]%>">
19   <% end %>
20   <meta name="robots" content="NOINDEX, NOFOLLOW">
21   <%= stylesheet_link_tag    "application", :media => "all" %>
22   <%= javascript_include_tag "application" %>
23   <%= csrf_meta_tags %>
24   <%= yield :head %>
25   <%= javascript_tag do %>
26   <%= yield :js %>
27   <% end %>
28   <style>
29     <%= yield :css %>
30     body {
31     min-height: 100%;
32     height: 100%;
33     }
34
35     @media (max-width: 979px) { body { padding-top: 0; } }
36
37     @media (max-width: 767px) {
38     .breadcrumbs {
39     display: none;
40     }
41     }
42   </style>
43   <link href="//netdna.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.css" rel="stylesheet">
44 </head>
45 <body>
46   <div id="wrapper" class="container-fluid">
47     <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
48       <div class="navbar-header">
49         <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
50           <span class="sr-only">Toggle navigation</span>
51           <span class="icon-bar"></span>
52           <span class="icon-bar"></span>
53           <span class="icon-bar"></span>
54         </button>
55         <a class="navbar-brand" href="/"><%= Rails.configuration.site_name.downcase rescue Rails.application.class.parent_name %></a>
56       </div>
57
58       <div class="collapse navbar-collapse">
59         <ul class="nav navbar-nav navbar-right">
60
61           <li>
62             <a><i class="rotating loading glyphicon glyphicon-refresh"></i></a>
63           </li>
64
65           <% if current_user %>
66           <!-- XXX placeholder for this when search is implemented
67           <li>
68             <form class="navbar-form" role="search">
69               <div class="input-group" style="width: 220px">
70                 <input type="text" class="form-control" placeholder="search">
71                 <span class="input-group-addon"><span class="glyphicon glyphicon-search"></span></span>
72               </div>
73             </form>
74           </li>
75           -->
76
77           <li>
78             <%= link_to(url_for(
79                        action: 'choose',
80                        controller: 'search',
81                        title: 'Search',
82                        action_name: 'Show',
83                        action_href: url_for(controller: :actions, action: :show),
84                        action_method: 'get',
85                        action_data: {selection_param: 'uuid', success: 'redirect-to-created-object'}.to_json),
86                       { class: "", remote: true, method: 'get' }) do %>
87               <i class="fa fa-fw fa-search"></i> Search
88             <% end %>
89           </li>
90
91           <li class="dropdown notification-menu">
92             <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="notifications-menu">
93               <span class="badge badge-alert notification-count"><%= @notification_count %></span>
94               <%= current_user.email %>
95             </a>
96             <ul class="dropdown-menu" role="menu">
97               <% if current_user.is_active %>
98               <li role="presentation"><a href="/authorized_keys" role="menuitem"><i class="fa fa-key fa-fw"></i> Manage ssh keys</a></li>
99               <li role="presentation"><a href="/api_client_authorizations" role="menuitem"><i class="fa fa-ticket fa-fw"></i> Manage API tokens</a></li>
100               <li role="presentation" class="divider"></li>
101               <% end %>
102               <li role="presentation"><a href="<%= logout_path %>" role="menuitem"><i class="fa fa-sign-out fa-fw"></i> Log out</a></li>
103               <% if current_user.is_active and
104                     (@notifications || []).length > 0 %>
105                 <li role="presentation" class="divider"></li>
106                 <% @notifications.each_with_index do |n, i| %>
107                   <% if i > 0 %><li class="divider"></li><% end %>
108                   <li class="notification"><%= n.call(self) %></li>
109                 <% end %>
110               <% end %>
111             </ul>
112           </li>
113
114           <li class="dropdown selection-menu">
115             <a href="#" class="dropdown-toggle" data-toggle="dropdown">
116               <span class="fa fa-lg fa-paperclip"></span>
117               <span class="badge" id="persistent-selection-count"></span>
118             </a>
119             <ul class="dropdown-menu" role="menu" id="persistent-selection-list">
120               <%= form_tag '/actions' do %>
121                 <%= hidden_field_tag 'uuid', @object.andand.uuid %>
122                 <div id="selection-form-content"></div>
123               <% end %>
124             </ul>
125           </li>
126
127           <% if current_user.is_active %>
128             <li class="dropdown">
129               <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="system-menu">
130                 <span class="fa fa-lg fa-gear"></span>
131               </a>
132               <ul class="dropdown-menu" role="menu">
133                 <li role="presentation" class="dropdown-header">
134                   Settings
135                 </li>
136                 <li role="presentation"><a href="/repositories">
137                     <i class="fa fa-lg fa-code-fork fa-fw"></i> Repositories
138                 </a></li>
139                 <li role="presentation"><a href="/virtual_machines">
140                     <i class="fa fa-lg fa-terminal fa-fw"></i> Virtual machines
141                 </a></li>
142                 <li role="presentation"><a href="/links">
143                     <i class="fa fa-lg fa-arrows-h fa-fw"></i> Links
144                 </a></li>
145                 <% if current_user.andand.is_admin %>
146                   <li role="presentation"><a href="/users">
147                       <i class="fa fa-lg fa-user fa-fw"></i> Users
148                   </a></li>
149                 <% end %>
150                 <li role="presentation"><a href="/groups">
151                     <i class="fa fa-lg fa-users fa-fw"></i> Groups
152                 </a></li>
153                 <li role="presentation"><a href="/nodes">
154                     <i class="fa fa-lg fa-cloud fa-fw"></i> Compute nodes
155                 </a></li>
156                 <li role="presentation"><a href="/keep_services">
157                     <i class="fa fa-lg fa-exchange fa-fw"></i> Keep services
158                 </a></li>
159                 <li role="presentation"><a href="/keep_disks">
160                     <i class="fa fa-lg fa-hdd-o fa-fw"></i> Keep disks
161                 </a></li>
162               </ul>
163             </li>
164           <% end %>
165           <% else %>
166             <li><a href="<%= arvados_api_client.arvados_login_url(return_to: root_url) %>">Log in</a></li>
167           <% end %>
168
169           <li class="dropdown help-menu">
170             <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="arv-help">
171               <span class="fa fa-lg fa-question-circle"></span>
172             </a>
173             <ul class="dropdown-menu">
174               <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> Tutorials and User guide'), "#{Rails.configuration.arvados_docsite}/user", target: "_blank" %></li>
175               <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> API Reference'), "#{Rails.configuration.arvados_docsite}/api", target: "_blank" %></li>
176               <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> SDK Reference'), "#{Rails.configuration.arvados_docsite}/sdk", target: "_blank" %></li>
177             </ul>
178           </li>
179         </ul>
180       </div><!-- /.navbar-collapse -->
181     </nav>
182
183     <% if current_user.andand.is_active %>
184       <nav class="navbar navbar-default breadcrumbs" role="navigation">
185         <ul class="nav navbar-nav navbar-left">
186           <li class="dropdown">
187             <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="projects-menu">
188               <i class="fa fa-lg fa-fw fa-home"></i>
189               Projects
190               <span class="caret"></span>
191             </a>
192             <ul class="dropdown-menu" role="menu">
193               <%= render partial: "projects_tree_menu", locals: {
194                     :project_link_to => Proc.new do |pnode, &block|
195                       link_to(project_path(pnode[:object].uuid), data: {object_uuid: pnode[:object].uuid, name: 'name'}, &block)
196                     end,
197                     :top_button => Proc.new do %>
198                       <% link_to projects_path, method: 'post', class: 'btn btn-xs btn-default pull-right' do %>
199                         <i class="fa fa-plus"></i> New project
200                       <% end %>
201                     <% end %>
202               <% } %>
203             </ul>
204           </li>
205           <% project_breadcrumbs.each do |p| %>
206             <li class="nav-separator">
207               <i class="fa fa-lg fa-angle-double-right"></i>
208             </li>
209             <li>
210               <%= link_to(p.name, project_path(p.uuid), data: {object_uuid: p.uuid, name: 'name'}) %>
211             </li>
212           <% end %>
213         </ul>
214       </nav>
215     <% end %>
216
217     <div id="page-wrapper">
218       <%= yield %>
219     </div>
220   </div>
221
222   <%= yield :footer_html %>
223   <%= piwik_tracking_tag %>
224   <%= javascript_tag do %>
225   <%= yield :footer_js %>
226   <% end %>
227
228 <div class="modal-container"></div>
229 </body>
230 </html>