5493: wiring for 'getting started' popup
[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         <% site_name = Rails.configuration.site_name.downcase rescue Rails.application.class.parent_name %>
11         <% if current_user %>
12           <a class="navbar-brand" href="/" data-push=true><%= site_name %></a>
13         <% else %>
14           <span class="navbar-brand"><%= site_name %></span>
15         <% end %>
16       </div>
17
18       <div class="collapse navbar-collapse">
19         <ul class="nav navbar-nav navbar-right">
20
21           <li>
22             <a><i class="rotating loading glyphicon glyphicon-refresh"></i></a>
23           </li>
24
25           <% if current_user %>
26             <% if current_user.is_active %>
27             <li>
28               <form class="navbar-form" role="search"
29                          data-search-modal=
30                          "<%= url_for(
31                           action: 'choose',
32                           controller: 'search',
33                           title: 'Search',
34                           action_name: 'Show',
35                           action_href: url_for(controller: :actions, action: :show),
36                           action_method: 'get',
37                           action_data: {selection_param: 'uuid', success: 'redirect-to-created-object', copy_from_search_box: true}.to_json)
38                          %>">
39                 <div class="input-group" style="width: 220px">
40                   <input type="text" class="form-control" placeholder="search">
41                   <a class="input-group-addon"><span class="glyphicon glyphicon-search"></span></a>
42                 </div>
43               </form>
44             </li>
45             <% end %>
46
47             <li class="dropdown notification-menu">
48               <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="notifications-menu">
49                 <span class="badge badge-alert notification-count"><%= user_notifications.length if user_notifications.any? %></span>
50                 <%= current_user.email %> <span class="caret"></span>
51               </a>
52               <ul class="dropdown-menu" role="menu">
53                 <% if current_user.is_active %>
54                 <li role="menuitem"><a href="/manage_account" role="menuitem"><i class="fa fa-key fa-fw"></i> Manage account</a></li>
55                 <% if Rails.configuration.user_profile_form_fields %>
56                   <li role="menuitem"><a href="/users/<%=current_user.uuid%>/profile" role="menuitem"><i class="fa fa-key fa-fw"></i> Manage profile</a></li>
57                 <% end %>
58                 <% end %>
59                 <li role="menuitem"><a href="<%= logout_path %>" role="menuitem"><i class="fa fa-sign-out fa-fw"></i> Log out</a></li>
60                 <% if user_notifications.any? %>
61                   <li role="presentation" class="divider"></li>
62                   <% user_notifications.each_with_index do |n, i| %>
63                     <% if i > 0 %><li class="divider"></li><% end %>
64                     <li class="notification"><%= n.call(self) %></li>
65                   <% end %>
66                 <% end %>
67               </ul>
68             </li>
69
70             <% if current_user.is_admin %>
71               <li class="dropdown">
72                 <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="system-menu">
73                   <span class="fa fa-lg fa-gear"></span>
74                 </a>
75                 <ul class="dropdown-menu" role="menu">
76                   <li role="presentation" class="dropdown-header">
77                     Settings
78                   </li>
79                   <li role="menuitem"><a href="/repositories">
80                       <i class="fa fa-lg fa-code-fork fa-fw"></i> Repositories
81                   </a></li>
82                   <li role="menuitem"><a href="/virtual_machines">
83                       <i class="fa fa-lg fa-terminal fa-fw"></i> Virtual machines
84                   </a></li>
85                   <li role="menuitem"><a href="/authorized_keys">
86                       <i class="fa fa-lg fa-key fa-fw"></i> SSH keys
87                   </a></li>
88                   <li role="menuitem"><a href="/api_client_authorizations">
89                       <i class="fa fa-lg fa-ticket fa-fw"></i> API tokens
90                   </a></li>
91                   <li role="menuitem"><a href="/links">
92                       <i class="fa fa-lg fa-arrows-h fa-fw"></i> Links
93                   </a></li>
94                   <li role="menuitem"><a href="/users">
95                       <i class="fa fa-lg fa-user fa-fw"></i> Users
96                   </a></li>
97                   <li role="menuitem"><a href="/groups">
98                       <i class="fa fa-lg fa-users fa-fw"></i> Groups
99                   </a></li>
100                   <li role="menuitem"><a href="/nodes">
101                       <i class="fa fa-lg fa-cloud fa-fw"></i> Compute nodes
102                   </a></li>
103                   <li role="menuitem"><a href="/keep_services">
104                       <i class="fa fa-lg fa-exchange fa-fw"></i> Keep services
105                   </a></li>
106                   <li role="menuitem"><a href="/keep_disks">
107                       <i class="fa fa-lg fa-hdd-o fa-fw"></i> Keep disks
108                   </a></li>
109                 </ul>
110               </li>
111             <% end %>
112           <% else %>
113             <li><a href="<%= arvados_api_client.arvados_login_url(return_to: root_url) %>">Log in</a></li>
114           <% end %>
115
116           <li class="dropdown help-menu">
117             <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="arv-help">
118               <span class="fa fa-lg fa-question-circle"></span>
119             </a>
120             <ul class="dropdown-menu">
121               <li> <%= link_to getting_started_popup_path(),
122                       {class: 'getting-started-modal-window', remote: true, return_to: request.url} do %>
123                        <i class="fa fa-fw fa-info"></i> Getting Started ...
124                       <% end %>
125               </li>
126               <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> Public Pipelines and Datasets'), "#{Rails.configuration.arvados_wikisite}/projects/arvados/wiki/Public_Pipelines_and_Datasets", target: "_blank" %></li>
127               <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> Tutorials and User guide'), "#{Rails.configuration.arvados_docsite}/user", target: "_blank" %></li>
128               <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> API Reference'), "#{Rails.configuration.arvados_docsite}/api", target: "_blank" %></li>
129               <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> SDK Reference'), "#{Rails.configuration.arvados_docsite}/sdk", target: "_blank" %></li>
130               <li role="presentation" class="divider"></li>
131               <li> <%= link_to report_issue_popup_path(popup_type: 'version', current_location: request.url, current_path: request.fullpath, action_method: 'post'),
132                       {class: 'report-issue-modal-window', remote: true, return_to: request.url} do %>
133                        <i class="fa fa-fw fa-support"></i> Show version / debugging info ...
134                       <% end %>
135               </li>
136               <li> <%= link_to report_issue_popup_path(popup_type: 'report', current_location: request.url, current_path: request.fullpath, action_method: 'post'),
137                       {class: 'report-issue-modal-window', remote: true, return_to: request.url} do %>
138                        <i class="fa fa-fw fa-support"></i> Report a problem ...
139                       <% end %>
140               </li>
141             </ul>
142           </li>
143         </ul>
144       </div><!-- /.navbar-collapse -->
145     </nav>
146
147     <% if current_user.andand.is_active %>
148       <nav class="navbar navbar-default breadcrumbs" role="navigation">
149         <ul class="nav navbar-nav navbar-left">
150           <li>
151             <a href="/">
152               <i class="fa fa-lg fa-fw fa-dashboard"></i>
153               Dashboard
154             </a>
155           </li>
156           <li class="dropdown">
157             <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="projects-menu">
158               Projects
159               <span class="caret"></span>
160             </a>
161             <ul class="dropdown-menu" style="min-width: 20em" role="menu">
162               <li>
163                 <%= link_to projects_path(options: {ensure_unique_name: true}), method: :post, class: 'btn btn-xs btn-default pull-right' do %>
164                   <i class="fa fa-plus"></i> Add a new project
165                 <% end %>
166               </li>
167               <%= render partial: "projects_tree_menu", locals: {
168                   :project_link_to => Proc.new do |pnode, &block|
169                     link_to(project_path(pnode[:object].uuid),
170                       data: { 'object-uuid' => pnode[:object].uuid,
171                               'name' => 'name' },
172                       &block)
173                   end,
174               } %>
175             </ul>
176           </li>
177           <% if @name_link or @object %>
178             <li class="nav-separator">
179               <i class="fa fa-lg fa-angle-double-right"></i>
180             </li>
181             <li>
182               <%= link_to project_path(current_user.uuid) do %>
183                 Home
184               <% end %>
185             </li>
186             <% project_breadcrumbs.each do |p| %>
187               <li class="nav-separator">
188                 <i class="fa fa-lg fa-angle-double-right"></i>
189               </li>
190               <li>
191                 <%= link_to(p.name, project_path(p.uuid), data: {object_uuid: p.uuid, name: 'name'}) %>
192               </li>
193             <% end %>
194           <% end %>
195         </ul>
196       </nav>
197     <% end %>
198
199     <%= render partial: 'browser_unsupported' %> <%# requires JS support below %>
200
201     <% if current_user and !current_user.prefs[:getting_started_shown] %> <%# requires JS support below %>
202       <div id="getting-started-modal-window"></div>
203     <% end %>
204
205     <div id="page-wrapper">
206       <%= yield %>
207     </div>
208   </div>
209
210   <%= yield :footer_html %>
211
212 <div class="modal-container"></div>
213 <div id="report-issue-modal-window"></div>
214 <script src="/browser_unsupported.js"></script>
215
216 <div id="getting-started-modal-window"></div>
217 <% if current_user and !current_user.prefs[:getting_started_shown] %>
218   <script>
219     $("#getting-started-modal-window").html("<%= escape_javascript(render partial: 'getting_started_popup') %>");
220     $("#getting-started-modal-window .modal").modal('show');
221   </script>
222 <% end %>