@@ -56,8 +56,14 @@ define(["jquery", "underscore", "views/generic/datatablepage", "models"],functio
5656 $ . ajax ( "/api/job/" + jobId + "/traceback" , {
5757 "type" : "GET" ,
5858 "success" : function ( data ) {
59- var stack = self . format_traceback ( data [ "traceback" ] ) ;
60- self . $ ( ".js-jobs-modal .js-jobs-modal-content" ) . html ( stack ) ;
59+ if ( data [ "traceback" ] ) {
60+ var stack = self . format_traceback ( data [ "traceback" ] ) ;
61+ self . $ ( ".js-jobs-modal .js-jobs-modal-content" ) . html ( stack ) ;
62+ }
63+ else {
64+ var stack = self . format_traceback_history ( data [ "traceback_history" ] ) ;
65+ self . $ ( ".js-jobs-modal .js-jobs-modal-content" ) . html ( stack ) ;
66+ }
6167 self . $ ( ".js-jobs-modal h4" ) . html ( "Stack Trace" ) ;
6268 self . $ ( ".js-jobs-modal" ) . modal ( { } ) ;
6369 } ,
@@ -129,7 +135,21 @@ define(["jquery", "underscore", "views/generic/datatablepage", "models"],functio
129135
130136 return stack ;
131137 } ,
132-
138+ format_traceback_history : function ( stacks ) {
139+ var self = this ;
140+ var full_history = "" ;
141+ _ . each ( stacks , function ( stack ) {
142+ full_history += "<br/><b>" + stack [ "date" ] + "</b><br/>" ;
143+ if ( stack [ "original_traceback" ] ) {
144+ full_history += "<b>Original trace</b>" ;
145+ full_history += self . format_traceback ( stack [ "original_traceback" ] || "" ) ;
146+ }
147+ full_history += "<b>Trace</b>" + "<br/>" ;
148+ full_history += self . format_traceback ( stack [ "traceback" ] || "" ) ;
149+ full_history += "---------------------------------------------------------------------" + "<br/>" ;
150+ } ) ;
151+ return full_history ;
152+ } ,
133153 row_jobaction :function ( evt ) {
134154 evt . preventDefault ( ) ;
135155 evt . stopPropagation ( ) ;
0 commit comments