5493: wiring for 'getting started' popup
authorRadhika Chippada <radhika@curoverse.com>
Thu, 26 Mar 2015 18:55:37 +0000 (14:55 -0400)
committerRadhika Chippada <radhika@curoverse.com>
Thu, 26 Mar 2015 18:55:37 +0000 (14:55 -0400)
apps/workbench/app/controllers/actions_controller.rb
apps/workbench/app/controllers/application_controller.rb
apps/workbench/app/views/application/_getting_started_popup.html.erb [new file with mode: 0644]
apps/workbench/app/views/application/getting_started_popup.js.erb [new file with mode: 0644]
apps/workbench/app/views/layouts/body.html.erb
apps/workbench/config/application.default.yml
apps/workbench/config/routes.rb

index 7737a3cfe4abdc8cded0159ac3bb1d5e13527768..9db8827c16ba821fab41576ab8fd4509ec63ae11 100644 (file)
@@ -1,6 +1,6 @@
 class ActionsController < ApplicationController
 
-  skip_filter :require_thread_api_token, only: [:report_issue_popup, :report_issue]
+  skip_filter :require_thread_api_token, only: [:report_issue_popup, :report_issue, :getting_started_popup]
   skip_filter :check_user_agreements, only: [:report_issue_popup, :report_issue]
 
   @@exposed_actions = {}
@@ -253,6 +253,12 @@ class ActionsController < ApplicationController
     end
   end
 
+  def getting_started_popup
+    respond_to do |format|
+      format.js
+    end
+  end
+
   protected
 
   def derive_unique_filename filename, manifest_files
index 1b59c574b774a897372a7f771dc4cdeda5f45df2..f81e095faefa41b76e2a4fba00f8283bdd1c88c5 100644 (file)
@@ -700,6 +700,15 @@ class ApplicationController < ActionController::Base
     missing_required
   end
 
+  helper_method :update_getting_started_shown_user_pref
+  def update_getting_started_shown_user_pref
+    prefs = current_user.prefs
+    if !prefs[:getting_started_shown]
+      prefs[:getting_started_shown] = Time.now
+      current_user.update_attributes prefs: prefs
+    end
+  end
+
   def select_theme
     return Rails.configuration.arvados_theme
   end
diff --git a/apps/workbench/app/views/application/_getting_started_popup.html.erb b/apps/workbench/app/views/application/_getting_started_popup.html.erb
new file mode 100644 (file)
index 0000000..eb161bc
--- /dev/null
@@ -0,0 +1,26 @@
+<%
+  update_getting_started_shown_user_pref() if current_user
+%>
+
+<div class="modal">
+  <div class="modal-dialog modal-with-loading-spinner">
+    <div class="modal-content">
+      <div class="modal-header">
+        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+        <div>
+          <div class="col-sm-8"> <h4 class="modal-title"> Getting Started with Arvados </h4> </div>
+          <div class="spinner spinner-32px spinner-h-center col-sm-1" hidden="true"></div>
+        </div>
+        <br/>
+      </div>
+
+      <div class="modal-body" style="height: 25em; overflow-y: scroll">
+        Wait for it
+      </div>
+
+      <div class="modal-footer">
+          <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button>
+      </div>
+    </div>
+  </div>
+</div>
diff --git a/apps/workbench/app/views/application/getting_started_popup.js.erb b/apps/workbench/app/views/application/getting_started_popup.js.erb
new file mode 100644 (file)
index 0000000..d9c4fa8
--- /dev/null
@@ -0,0 +1,2 @@
+$("#getting-started-modal-window").html("<%= escape_javascript(render partial: 'getting_started_popup') %>");
+$("#getting-started-modal-window .modal").modal('show');
index fbbd0fac26e32793d50f095973933750a52cbdef..67e50bd306954efec5e25e7fcf3f4a8b89b096dc 100644 (file)
               <span class="fa fa-lg fa-question-circle"></span>
             </a>
             <ul class="dropdown-menu">
+              <li> <%= link_to getting_started_popup_path(),
+                      {class: 'getting-started-modal-window', remote: true, return_to: request.url} do %>
+                       <i class="fa fa-fw fa-info"></i> Getting Started ...
+                      <% end %>
+              </li>
+              <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>
               <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> Tutorials and User guide'), "#{Rails.configuration.arvados_docsite}/user", target: "_blank" %></li>
               <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> API Reference'), "#{Rails.configuration.arvados_docsite}/api", target: "_blank" %></li>
               <li><%= link_to raw('<i class="fa fa-book fa-fw"></i> SDK Reference'), "#{Rails.configuration.arvados_docsite}/sdk", target: "_blank" %></li>
       </nav>
     <% end %>
 
-    <%= render partial: 'browser_unsupported' %><%# requires JS support below %>
+    <%= render partial: 'browser_unsupported' %> <%# requires JS support below %>
+
+    <% if current_user and !current_user.prefs[:getting_started_shown] %> <%# requires JS support below %>
+      <div id="getting-started-modal-window"></div>
+    <% end %>
 
     <div id="page-wrapper">
       <%= yield %>
 <div class="modal-container"></div>
 <div id="report-issue-modal-window"></div>
 <script src="/browser_unsupported.js"></script>
+
+<div id="getting-started-modal-window"></div>
+<% if current_user and !current_user.prefs[:getting_started_shown] %>
+  <script>
+    $("#getting-started-modal-window").html("<%= escape_javascript(render partial: 'getting_started_popup') %>");
+    $("#getting-started-modal-window .modal").modal('show');
+  </script>
+<% end %>
index f3d179238a38857530bb5db3e0b38d4b7974f1fe..0b8f36d6789e87e2c3b4b4eeda6284006bfb1258 100644 (file)
@@ -131,6 +131,7 @@ common:
   arvados_insecure_https: true
   activation_contact_link: mailto:info@arvados.org
   arvados_docsite: http://doc.arvados.org
+  arvados_wikisite: http://arvados.org
   arvados_theme: default
   show_user_agreement_inline: false
   secret_token: ~
index 7ed02e7dc9ba11aa8beb07cae5f9c934ce77fd9f..2e152c705f8983c2834c67efebf89a27d4426858 100644 (file)
@@ -12,6 +12,7 @@ ArvadosWorkbench::Application.routes.draw do
   get "users/setup" => 'users#setup', :as => :setup_user
   get "report_issue_popup" => 'actions#report_issue_popup', :as => :report_issue_popup
   post "report_issue" => 'actions#report_issue', :as => :report_issue
+  get "getting_started_popup" => 'actions#getting_started_popup', :as => :getting_started_popup
   resources :nodes
   resources :humans
   resources :traits