3901: improve component rendering error reports
authorTim Pierce <twp@curoverse.com>
Thu, 25 Sep 2014 18:09:02 +0000 (14:09 -0400)
committerTim Pierce <twp@curoverse.com>
Thu, 25 Sep 2014 18:09:02 +0000 (14:09 -0400)
The "Components" tab on the /pipeline_instances page now includes the
error that was encountered, and a collapsed panel with the full backtrace.

apps/workbench/app/helpers/pipeline_components_helper.rb
apps/workbench/app/views/pipeline_instances/_show_components_json.html.erb

index 28adfa9f99b2152cac5a8c1a98bbb1b544a74c9e..9fead2c8f0ed0a5c167984ab50cd260b1b0d665b 100644 (file)
@@ -8,7 +8,8 @@ module PipelineComponentsHelper
       logger.error "#{e.backtrace.join("\n\t")}"
       case fallback
       when :json
       logger.error "#{e.backtrace.join("\n\t")}"
       case fallback
       when :json
-        render(partial: "pipeline_instances/show_components_json")
+        render(partial: "pipeline_instances/show_components_json",
+               locals: {error_name: e.inspect, backtrace: e.backtrace.join("\n\t")})
       end
     end
   end
       end
     end
   end
index 3cdd5aedb38c3f154122d9636d54e91534689b03..9d1edbf264ff34a7d0c139aa2d7df8c3f3a9486e 100644 (file)
@@ -1,5 +1,7 @@
 <p>The components of this pipeline are in a format that Workbench does not recognize.</p>
 
 <p>The components of this pipeline are in a format that Workbench does not recognize.</p>
 
+<p>Error encountered: <b><%= error_name %></b></p>
+
     <div id="components-accordion" class="panel panel-default">
       <div class="panel-heading">
         <h4 class="panel-title">
     <div id="components-accordion" class="panel panel-default">
       <div class="panel-heading">
         <h4 class="panel-title">
           <pre><%= Oj.dump(@object.components, indent: 2) %></pre>
         </div>
       </div>
           <pre><%= Oj.dump(@object.components, indent: 2) %></pre>
         </div>
       </div>
+      <div class="panel-heading">
+        <h4 class="panel-title">
+          <a data-toggle="collapse" data-parent="#components-accordion" href="#components-backtrace">
+            Show backtrace
+          </a>
+        </h4>
+      </div>
+      <div id="components-backtrace" class="panel-collapse collapse">
+        <div class="panel-body">
+          <pre><%= backtrace %></pre>
+        </div>
+      </div>
     </div>
     </div>