Merge branch '3499-home-project' closes #3499
[arvados.git] / apps / workbench / app / views / layouts / body.html.erb
1   <div id="wrapper" class="container-fluid">
2     <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
3       <div class="navbar-header">
4         <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
5           <span class="sr-only">Toggle navigation</span>
6           <span class="icon-bar"></span>
7           <span class="icon-bar"></span>
8           <span class="icon-bar"></span>
9         </button>
10         <a class="navbar-brand" href="/" data-push=true><%= Rails.configuration.site_name.downcase rescue Rails.application.class.parent_name %></a>
11       </div>
12
13       <div class="collapse navbar-collapse">
14         <ul class="nav navbar-nav navbar-right">
15
16           <li>
17             <a><i class="rotating loading glyphicon glyphicon-refresh"></i></a>
18           </li>
19
20           <% if current_user %>
21           <li>
22             <form class="navbar-form" role="search"
23                        data-search-modal=
24                        "<%= url_for(
25                         action: 'choose',
26                         controller: 'search',
27                         title: 'Search',
28                         action_name: 'Show',
29                         action_href: url_for(controller: :actions, action: :show),
30                         action_method: 'get',
31                         action_data: {selection_param: 'uuid', success: 'redirect-to-created-object', copy_from_search_box: true}.to_json)
32                        %>">
33               <div class="input-group" style="width: 220px">
34                 <input type="text" class="form-control" placeholder="search">
35                 <a class="input-group-addon"><span class="glyphicon glyphicon-search"></span></a>
36               </div>
37             </form>
38           </li>
39
40           <li class="dropdown notification-menu">
41             <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="notifications-menu">
42               <span class="badge badge-alert notification-count"><%= @notification_count %></span>
43               <%= current_user.email %>
44             </a>
45             <ul class="dropdown-menu" role="menu">
46               <% if current_user.is_active %>
47               <li role="presentation"><a href="/manage_account" role="menuitem"><i class="fa fa-key fa-fw"></i> Manage account</a></li>
48               <li role="presentation" class="divider"></li>
49               <% end %>
50               <li role="presentation"><a href="<%= logout_path %>" role="menuitem"><i class="fa fa-sign-out fa-fw"></i> Log out</a></li>
51               <% if current_user.is_active and
52                     (@notifications || []).length > 0 %>
53                 <li role="presentation" class="divider"></li>
54                 <% @notifications.each_with_index do |n, i| %>
55                   <% if i > 0 %><li class="divider"></li><% end %>
56                   <li class="notification"><%= n.call(self) %></li>
57                 <% end %>
58               <% end %>
59             </ul>
60           </li>
61
62           <li class="dropdown selection-menu">
63             <a href="#" class="dropdown-toggle" data-toggle="dropdown">
64               <span class="fa fa-lg fa-paperclip"></span>
65               <span class="badge" id="persistent-selection-count"></span>
66             </a>
67             <ul class="dropdown-menu" role="menu" id="persistent-selection-list">
68               <%= form_tag '/actions' do %>
69                 <%= hidden_field_tag 'uuid', @object.andand.uuid %>
70                 <div id="selection-form-content"></div>
71               <% end %>
72             </ul>
73           </li>
74
75           <% if current_user.is_active %>
76             <li class="dropdown">
77               <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="system-menu">
78                 <span class="fa fa-lg fa-gear"></span>
79               </a>
80               <ul class="dropdown-menu" role="menu">
81                 <li role="presentation" class="dropdown-header">
82                   Settings
83                 </li>
84                 <% if current_user.andand.is_admin %>
85                   <li role="presentation"><a href="/repositories">
86                       <i class="fa fa-lg fa-code-fork fa-fw"></i> Repositories
87                   </a></li>
88                   <li role="presentation"><a href="/virtual_machines">
89                       <i class="fa fa-lg fa-terminal fa-fw"></i> Virtual machines
90                   </a></li>
91                   <li role="presentation"><a href="/authorized_keys">
92                       <i class="fa fa-lg fa-key fa-fw"></i> SSH keys
93                   </a></li>
94                   <li role="presentation"><a href="/api_client_authorizations">
95                       <i class="fa fa-lg fa-ticket fa-fw"></i> API tokens
96                   </a></li>
97                 <% end %>
98                 <li role="presentation"><a href="/links">
99                     <i class="fa fa-lg fa-arrows-h fa-fw"></i> Links
100                 </a></li>
101                 <% if current_user.andand.is_admin %>
102                   <li role="presentation"><a href="/users">
103                       <i class="fa fa-lg fa-user fa-fw"></i> Users
104                   </a></li>
105                 <% end %>
106                 <li role="presentation"><a href="/groups">
107                     <i class="fa fa-lg fa-users fa-fw"></i> Groups
108                 </a></li>
109                 <li role="presentation"><a href="/nodes">
110                     <i class="fa fa-lg fa-cloud fa-fw"></i> Compute nodes
111                 </a></li>
112                 <li role="presentation"><a href="/keep_services">
113                     <i class="fa fa-lg fa-exchange fa-fw"></i> Keep services
114                 </a></li>
115                 <li role="presentation"><a href="/keep_disks">
116                     <i class="fa fa-lg fa-hdd-o fa-fw"></i> Keep disks
117                 </a></li>
118               </ul>
119             </li>
120           <% end %>
121           <% else %>
122             <li><a href="<%= arvados_api_client.arvados_login_url(return_to: root_url) %>">Log in</a></li>
123           <% end %>
124
125           <li class="dropdown help-menu">
126             <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="arv-help">
127               <span class="fa fa-lg fa-question-circle"></span>
128             </a>
129             <ul class="dropdown-menu">
130               <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> Tutorials and User guide'), "#{Rails.configuration.arvados_docsite}/user", target: "_blank" %></li>
131               <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> API Reference'), "#{Rails.configuration.arvados_docsite}/api", target: "_blank" %></li>
132               <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> SDK Reference'), "#{Rails.configuration.arvados_docsite}/sdk", target: "_blank" %></li>
133             </ul>
134           </li>
135         </ul>
136       </div><!-- /.navbar-collapse -->
137     </nav>
138
139     <% if current_user.andand.is_active %>
140       <nav class="navbar navbar-default breadcrumbs" role="navigation">
141         <ul class="nav navbar-nav navbar-left">
142           <li>
143             <a href="/">
144               <i class="fa fa-lg fa-fw fa-dashboard"></i>
145               Dashboard
146             </a>
147           </li>
148           <li class="dropdown">
149             <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="projects-menu">
150               Projects
151               <span class="caret"></span>
152             </a>
153             <ul class="dropdown-menu" role="menu">
154             <%= render partial: "projects_tree_menu", locals: {
155                   :project_link_to => Proc.new do |pnode, &block|
156                     link_to(project_path(pnode[:object].uuid),
157                       data: { 'object-uuid' => pnode[:object].uuid,
158                               'name' => 'name' },
159                       &block)
160                   end,
161                   :top_button => Proc.new do %>
162                     <% link_to projects_path, method: 'post', class: 'btn btn-xs btn-default pull-right' do %>
163                       <i class="fa fa-plus"></i> New project
164                     <% end %>
165                   <% end %>
166             <% } %>
167             </ul>
168           </li>
169           <% if @name_link or @object %>
170             <li class="nav-separator">
171               <i class="fa fa-lg fa-angle-double-right"></i>
172             </li>
173             <li>
174               <%= link_to project_path(current_user.uuid) do %>
175                 Home
176               <% end %>
177             </li>
178             <% project_breadcrumbs.each do |p| %>
179               <li class="nav-separator">
180                 <i class="fa fa-lg fa-angle-double-right"></i>
181               </li>
182               <li>
183                 <%= link_to(p.name, project_path(p.uuid), data: {object_uuid: p.uuid, name: 'name'}) %>
184               </li>
185             <% end %>
186           <% end %>
187         </ul>
188       </nav>
189     <% end %>
190
191     <div id="page-wrapper">
192       <%= yield %>
193     </div>
194   </div>
195
196   <%= yield :footer_html %>
197
198 <div class="modal-container"></div>