[ARVADOS] updated: 39f5ca6f38aa5aa6b00479bcfb93e0a9a5cf511c

git at public.curoverse.com git at public.curoverse.com
Wed Aug 13 22:21:41 EDT 2014


Summary of changes:
 .../app/controllers/actions_controller.rb          | 15 ++++
 apps/workbench/app/mailers/issue_reporter.rb       | 10 +++
 .../views/application/_report_issue_popup.html.erb | 94 ++++++++++++++++++++++
 .../report_issue.js.erb}                           |  0
 .../views/application/report_issue_popup.js.erb    |  7 ++
 .../app/views/issue_reporter/send_report.text.erb  |  2 +
 apps/workbench/app/views/layouts/body.html.erb     | 12 +++
 .../views/projects/_show_contents_rows.html.erb    |  7 ++
 .../app/views/projects/_show_tab_contents.html.erb | 19 +++--
 apps/workbench/config/application.default.yml      | 10 +++
 apps/workbench/config/routes.rb                    |  2 +
 .../test/functional/actions_controller_test.rb     | 19 +++++
 .../test/integration/pipeline_instances_test.rb    |  4 +-
 sdk/cli/bin/arv-run-pipeline-instance              | 57 +++++++++----
 sdk/python/arvados/__init__.py                     | 11 +++
 sdk/python/arvados/api.py                          |  8 +-
 sdk/python/arvados/collection.py                   | 10 ++-
 sdk/python/arvados/events.py                       |  8 +-
 sdk/python/arvados/keep.py                         | 54 ++++++-------
 sdk/python/arvados/stream.py                       |  1 -
 sdk/python/bin/arv-get                             | 39 +++++----
 sdk/python/bin/arv-ls                              |  3 -
 sdk/python/bin/arv-normalize                       |  3 -
 sdk/python/bin/arv-ws                              |  8 +-
 services/api/Gemfile.lock                          | 14 ++--
 services/api/config/application.default.yml        |  2 +-
 services/api/script/crunch-dispatch.rb             | 23 +++---
 services/fuse/arvados_fuse/__init__.py             | 20 +++--
 services/fuse/bin/arv-mount                        | 50 +++++++-----
 29 files changed, 370 insertions(+), 142 deletions(-)
 create mode 100644 apps/workbench/app/mailers/issue_reporter.rb
 create mode 100644 apps/workbench/app/views/application/_report_issue_popup.html.erb
 copy apps/workbench/app/views/{users/setup.js.erb => application/report_issue.js.erb} (100%)
 create mode 100644 apps/workbench/app/views/application/report_issue_popup.js.erb
 create mode 100644 apps/workbench/app/views/issue_reporter/send_report.text.erb
 create mode 100644 apps/workbench/test/functional/actions_controller_test.rb

       via  39f5ca6f38aa5aa6b00479bcfb93e0a9a5cf511c (commit)
       via  97e3a42d5041515e4c135220b1836805e76a2d94 (commit)
       via  d746be84d5e9eb8b3df794328fb49a94605e69a5 (commit)
       via  e7d6f7ade14cd2c513ad10d39da23b926e47b679 (commit)
       via  7482410350df49dbddab05448b167bf61f14d71e (commit)
       via  4169ee2834e63a0a13aa6b2e853a2d43659f1048 (commit)
       via  a5fbf74ba1454a555f2c74290e2ff08596955bb3 (commit)
       via  b17d7233f5ccb8ec3d857ae3e506d53377207376 (commit)
       via  884eae85a67a1d80002f17c36878511caa9596e0 (commit)
       via  3cc80b447efcaf416ea4d6857d6d40583e462ff8 (commit)
       via  dfda463f54b05a5fbc023077584d8681d9e6c96d (commit)
       via  348c0d6b9927b7fd416085b131e9afbc54e90446 (commit)
       via  37cea605dcd9d7b16a009c8a2720255587af72a7 (commit)
       via  936ee283693b7ec95241d9defa2750e98a93dcbd (commit)
      from  8a43d77d76a96940dc1b3b8e249556425b581a85 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 39f5ca6f38aa5aa6b00479bcfb93e0a9a5cf511c
Merge: 97e3a42 d746be8
Author: radhika <radhika at curoverse.com>
Date:   Wed Aug 13 22:21:30 2014 -0400

    Merge branch 'master' into 3112-report-bug


commit 97e3a42d5041515e4c135220b1836805e76a2d94
Author: radhika <radhika at curoverse.com>
Date:   Wed Aug 13 22:20:23 2014 -0400

    3112: config settings, mailer, popup display

diff --git a/apps/workbench/app/controllers/actions_controller.rb b/apps/workbench/app/controllers/actions_controller.rb
index d1dc0fc..a50eaaf 100644
--- a/apps/workbench/app/controllers/actions_controller.rb
+++ b/apps/workbench/app/controllers/actions_controller.rb
@@ -177,4 +177,19 @@ class ActionsController < ApplicationController
     redirect_to controller: 'collections', action: :show, id: newc.uuid
   end
 
+  def report_issue_popup
+    @popup_params = params
+    respond_to do |format|
+      format.js
+      format.html
+    end
+  end
+
+  def report_issue
+    respond_to do |format|
+      IssueReporter.send_report(current_user, params).deliver
+      format.js
+    end
+  end
+
 end
diff --git a/apps/workbench/app/mailers/issue_reporter.rb b/apps/workbench/app/mailers/issue_reporter.rb
new file mode 100644
index 0000000..1b1fa65
--- /dev/null
+++ b/apps/workbench/app/mailers/issue_reporter.rb
@@ -0,0 +1,10 @@
+class IssueReporter < ActionMailer::Base
+  default from: Rails.configuration.report_notifier_email_from
+  default to: Rails.configuration.report_notifier_email_to
+
+  def send_report(user, data)
+    @user = user
+    @data = data
+    mail(subject: 'Issue reported')
+  end
+end
diff --git a/apps/workbench/app/views/application/_report_issue_popup.html.erb b/apps/workbench/app/views/application/_report_issue_popup.html.erb
new file mode 100644
index 0000000..924787a
--- /dev/null
+++ b/apps/workbench/app/views/application/_report_issue_popup.html.erb
@@ -0,0 +1,94 @@
+<%
+  api_version = arvados_api_client.discovery[:source_version]
+  generated_at = arvados_api_client.discovery[:generatedAt]
+  wb_version = Rails.configuration.source_version + ' ' + Rails.configuration.local_modified
+  arvados_base = Rails.configuration.arvados_v1_base
+  support_email = Rails.configuration.support_email_address
+
+  additional_info = "User's email: " + current_user.email + "\n" +
+                    "Current Location: " + @popup_params[:current_location]
+%>
+<div class="modal-dialog modal-with-loading-spinner">
+  <div class="modal-content">
+
+    <%= form_tag report_issue_path, {id: 'report-issue-form', name: 'report-issue-form', method: 'post',
+        class: 'form-horizontal', remote: true} do %>
+
+      <%
+        title = 'Version / debugging info'
+        title = 'Report a problem' if @popup_params[:popup_type] == 'report'
+      %>
+
+      <div class="modal-header">
+        <button type="button" class="close" onClick="reset_form()" data-dismiss="modal" aria-hidden="true">×</button>
+        <div>
+          <div class="col-sm-8"> <h4 class="modal-title"><%=title%></h4> </div>
+          <div class="spinner spinner-32px spinner-h-center col-sm-1" hidden="true"></div>
+        </div>
+        <br/>
+      </div>
+
+      <div class="modal-body">
+        <div class="form-group">
+          <label for="support_version" class="col-sm-4 control-label"> Support email </label>
+          <div class="col-sm-8">
+            <p class="form-control-static" id="support_version" name="support_version"><%=support_email%></p>
+          </div>
+        </div>
+
+        <div class="form-group">
+          <label for="server_version" class="col-sm-4 control-label"> Server Version </label>
+          <div class="col-sm-8">
+            <p class="form-control-static" id="server_version" name="server_version"><%=api_version%></p>
+          </div>
+        </div>
+
+        <div class="form-group">
+          <label for="generated_at" class="col-sm-4 control-label"> Server restarted at </label>
+          <div class="col-sm-8">
+            <p class="form-control-static" id="generated_at" name="generated_at"><%=generated_at%></p>
+          </div>
+        </div>
+
+        <div class="form-group">
+          <label for="wb_version" class="col-sm-4 control-label"> Workbench version </label>
+          <div class="col-sm-8">
+            <p class="form-control-static" id="wb_version" name="wb_version"><%=wb_version%></p>
+          </div>
+        </div>
+
+        <div class="form-group">
+          <label for="arvados_base" class="col-sm-4 control-label"> Arvados base </label>
+          <div class="col-sm-8">
+            <p class="form-control-static" id="arvados_base" name="arvados_base"><%=arvados_base%></p>
+          </div>
+        </div>
+
+        <% if @popup_params[:popup_type] == 'report' %>
+          <div class="form-group">
+            <label for="report_text" class="col-sm-4 control-label"> Report text </label>
+            <div class="col-sm-8">
+              <textarea class="form-control" id="report_text" rows="1" name="report_text" type="text"/>
+            </div>
+          </div>
+        <% end %>
+
+        <div class="form-group">
+          <label for="additional_info" class="col-sm-4 control-label"> Additional info </label>
+          <div class="col-sm-8">
+            <textarea readonly class="form-control" id="additional_info" rows="1" name="additional_info" type="text"><%=additional_info%></textarea>
+        </div>
+      </div>
+
+      <div class="modal-footer">
+        <% if @popup_params[:popup_type] == 'report' %>
+          <button type="submit" id="register" class="btn btn-primary" autofocus>Report issue</button>
+          <button class="btn btn-default" onClick="reset_form()" data-dismiss="modal" aria-hidden="true">Cancel</button>
+        <% else %>
+          <button class="btn btn-default" onClick="reset_form()" data-dismiss="modal" aria-hidden="true">Close</button>
+        <% end %>
+      </div>
+
+    <% end #form %>
+  </div>
+</div>
diff --git a/apps/workbench/app/views/application/report_issue.js.erb b/apps/workbench/app/views/application/report_issue.js.erb
new file mode 100644
index 0000000..bce71b4
--- /dev/null
+++ b/apps/workbench/app/views/application/report_issue.js.erb
@@ -0,0 +1,2 @@
+$("#user-setup-modal-window").modal("hide");
+document.location.reload();
diff --git a/apps/workbench/app/views/application/report_issue_popup.js.erb b/apps/workbench/app/views/application/report_issue_popup.js.erb
new file mode 100644
index 0000000..513bf7d
--- /dev/null
+++ b/apps/workbench/app/views/application/report_issue_popup.js.erb
@@ -0,0 +1,7 @@
+$("#report-issue-modal-window").html("<%= escape_javascript(render partial: 'report_issue_popup') %>");
+
+// reset form input fields, for the next time around
+function reset_form() {
+  $('#report_text').val("");
+  $('#additional_info').val("");
+}
diff --git a/apps/workbench/app/views/issue_reporter/send_report.text.erb b/apps/workbench/app/views/issue_reporter/send_report.text.erb
new file mode 100644
index 0000000..a63869d
--- /dev/null
+++ b/apps/workbench/app/views/issue_reporter/send_report.text.erb
@@ -0,0 +1,2 @@
+Issue reported by user <%=@user.full_name%> <%=@user.email%>
+Details of the report: <%=@data.inspect%>
diff --git a/apps/workbench/app/views/layouts/body.html.erb b/apps/workbench/app/views/layouts/body.html.erb
index 4c58dab..dd80822 100644
--- a/apps/workbench/app/views/layouts/body.html.erb
+++ b/apps/workbench/app/views/layouts/body.html.erb
@@ -136,6 +136,17 @@
               <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>
+              <li role="presentation" class="divider"></li>
+              <li> <%= link_to report_issue_popup_path(popup_type: 'version', current_location: request.fullpath, action_method: 'post'),
+                      {class: 'report-issue-modal-window', 'data-toggle' =>  "modal", 'data-target' => '#report-issue-modal-window', :remote => true, return_to: request.url} do %>
+                       <i class="fa fa-fw fa-support"></i> Show version / debugging info
+                      <% end %>
+              </li>
+              <li> <%= link_to report_issue_popup_path(popup_type: 'report', current_location: request.fullpath, action_method: 'post'),
+                      {class: 'report-issue-modal-window', 'data-toggle' =>  "modal", 'data-target' => '#report-issue-modal-window', :remote => true, return_to: request.url} do %>
+                       <i class="fa fa-fw fa-support"></i> Report a problem
+                      <% end %>
+              </li>
             </ul>
           </li>
         </ul>
@@ -202,3 +213,4 @@
   <%= yield :footer_html %>
 
 <div class="modal-container"></div>
+<div id="report-issue-modal-window" class="modal fade" role="dialog" aria-labelledby="report-issue-modal" aria-hidden="true"></div>
diff --git a/apps/workbench/config/application.default.yml b/apps/workbench/config/application.default.yml
index 3b4c2c0..13829b6 100644
--- a/apps/workbench/config/application.default.yml
+++ b/apps/workbench/config/application.default.yml
@@ -12,6 +12,7 @@ development:
   assets.debug: true
   profiling_enabled: true
   site_name: Arvados Workbench (dev)
+  local_modified: <%= '-modified' if `git status -s` %>
 
 production:
   force_ssl: true
@@ -131,3 +132,12 @@ common:
   # Use "user_profile_form_message" to configure the message you want to display in
   # the profile page. If this is not provided, a default message will be displayed.
   user_profile_form_message: Welcome to Arvados. Please fill in all required fields before you can access Arvados Workbench. Missing required fields are in <span style="color:red">red</span>.
+
+  # source_version
+  source_version: <%= `git log -n 1 --format=%h` %>
+  local_modified: false
+
+  # report nitification to and from addresses
+  report_notifier_email_from: arvados at example.com
+  report_notifier_email_to: arvados at example.com
+  support_email_address: arvados at example.com
diff --git a/apps/workbench/config/routes.rb b/apps/workbench/config/routes.rb
index 4ef2661..839118d 100644
--- a/apps/workbench/config/routes.rb
+++ b/apps/workbench/config/routes.rb
@@ -10,6 +10,8 @@ ArvadosWorkbench::Application.routes.draw do
   get '/user_agreements/signatures' => 'user_agreements#signatures'
   get "users/setup_popup" => 'users#setup_popup', :as => :setup_user_popup
   get "users/setup" => 'users#setup', :as => :setup_user
+  get "actions/report_issue_popup" => 'actions#report_issue_popup', :as => :report_issue_popup
+  post "actions/report_issue" => 'actions#report_issue', :as => :report_issue
   resources :nodes
   resources :humans
   resources :traits
diff --git a/apps/workbench/test/functional/actions_controller_test.rb b/apps/workbench/test/functional/actions_controller_test.rb
new file mode 100644
index 0000000..f3c7b74
--- /dev/null
+++ b/apps/workbench/test/functional/actions_controller_test.rb
@@ -0,0 +1,19 @@
+require 'test_helper'
+
+class ActionsControllerTest < ActionController::TestCase
+
+  test "send report" do
+    post :report_issue, {format: 'js'}, session_for(:admin)
+    assert_response :success
+
+    found_email = false
+    ActionMailer::Base.deliveries.andand.each do |email|
+      if email.subject == "Issue reported"
+        found_email = true
+        break
+      end
+    end
+    assert_equal true, found_email, 'Expected email after issue reported'
+  end
+
+end
diff --git a/services/api/config/application.default.yml b/services/api/config/application.default.yml
index 668ba00..bd877f6 100644
--- a/services/api/config/application.default.yml
+++ b/services/api/config/application.default.yml
@@ -182,5 +182,5 @@ common:
   user_profile_notification_address: false
 
   # source_version
-  source_version: <%= `git log -n 1 --format=%H` %>
+  source_version: <%= `git log -n 1 --format=%h` %>
   local_modified: false

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list