Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(90)

Side by Side Diff: appengine/findit/templates/build_failure.html

Issue 2361583002: [Findit] UI change and triage change for cl level trige. (Closed)
Patch Set: . Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <head> 2 <head>
3 <title>{% block title %}{% endblock %} Failure</title> 3 <title>{% block title %}{% endblock %} Failure</title>
4 <meta charset="utf-8"> 4 <meta charset="utf-8">
5 <link rel="stylesheet" href="/common.css"> 5 <link rel="stylesheet" href="/common.css">
6 <style> 6 <style>
7 .running { 7 .running {
8 color: #666666; 8 color: #666666;
9 background-color: #fffc6c; 9 background-color: #fffc6c;
10 border-color: #c5c56d; 10 border-color: #c5c56d;
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 findit.builderUrl = 'https://build.chromium.org/p/{{master_name}}/builders/{ {builder_name}}'; 69 findit.builderUrl = 'https://build.chromium.org/p/{{master_name}}/builders/{ {builder_name}}';
70 findit.buildUrl = findit.builderUrl + '/builds/{{build_number}}'; 70 findit.buildUrl = findit.builderUrl + '/builds/{{build_number}}';
71 findit.triageReferenceAnalysisUrl = '/waterfall/build-failure?url=https://bu ild.chromium.org/p/{{triage_reference_analysis_master_name}}/builders/{{triage_r eference_analysis_builder_name}}/builds/{{triage_reference_analysis_build_number }}'; 71 findit.triageReferenceAnalysisUrl = '/waterfall/build-failure?url=https://bu ild.chromium.org/p/{{triage_reference_analysis_master_name}}/builders/{{triage_r eference_analysis_builder_name}}/builds/{{triage_reference_analysis_build_number }}';
72 findit.analysisCorrect = '{{analysis_correct}}'; // Possible values: 'None' , 'True', or 'False'. 72 findit.analysisCorrect = '{{analysis_correct}}'; // Possible values: 'None' , 'True', or 'False'.
73 findit.analysisIsDuplicate = '{{analysis_is_duplicate}}' == 'True'; 73 findit.analysisIsDuplicate = '{{analysis_is_duplicate}}' == 'True';
74 findit.showTriageHelpButton = '{{show_triage_help_button}}' == 'True'; 74 findit.showTriageHelpButton = '{{show_triage_help_button}}' == 'True';
75 findit.showDebugInfo = '{{show_debug_info}}' == 'True'; 75 findit.showDebugInfo = '{{show_debug_info}}' == 'True';
76 76
77 {% block constant %}{% endblock constant %} 77 {% block constant %}{% endblock constant %}
78 78
79 function triageSuspectedCL(e) {
80 $.getJSON('/waterfall/triage-suspected-cl?cl_info=' + e.name +'&status=' + e.value + '&url=' + findit.buildUrl, function(data) {
81 if (! data[success]) {
82 alert('Failed to update datastore. Please refresh and try again.');
83 } else {
84 $('#cl_result_triaged').html('Result has been recorded. Thank you.')
85 }
86 }).error(function(xhr) {
87 // Replace the whole page with errors from server side.
88 document.body.outerHTML = xhr.responseText;
89 });
90
91 e.preventDefault();
92 }
93
79 function triageAnalysisResult(e) { 94 function triageAnalysisResult(e) {
80 var target = $(this); 95 var target = $(this);
81 if (target.hasClass('triaged')) 96 if (target.hasClass('triaged'))
82 return; 97 return;
83 98
84 var correct = target.hasClass('thumb-up'); 99 var correct = target.hasClass('thumb-up');
85 $.getJSON('/waterfall/triage-analysis?correct=' + correct + '&url=' + find it.buildUrl, function(data) { 100 $.getJSON('/waterfall/triage-analysis?correct=' + correct + '&url=' + find it.buildUrl, function(data) {
86 if (data['success']) { 101 if (data['success']) {
87 $('.triaged').addClass('triage').removeClass('triaged'); 102 $('.triaged').addClass('triage').removeClass('triaged');
88 target.addClass('triaged').removeClass('triage'); 103 target.addClass('triaged').removeClass('triage');
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 $('#status_message').attr('class', 'error'); 165 $('#status_message').attr('class', 'error');
151 } else { 166 } else {
152 // TODO: use another style when no culprit CL is found. 167 // TODO: use another style when no culprit CL is found.
153 $('#status_message').text('completed'); 168 $('#status_message').text('completed');
154 $('#status_message').attr('class', 'completed'); 169 $('#status_message').attr('class', 'completed');
155 170
156 $('.triage').click(triageAnalysisResult); 171 $('.triage').click(triageAnalysisResult);
157 172
158 {% block failure_classification %}{% endblock failure_classification % } 173 {% block failure_classification %}{% endblock failure_classification % }
159 174
160 if (findit.analysisCorrect == 'True') {
161 $('.thumb-up').addClass('triaged').removeClass('triage');
162 } else if (findit.analysisCorrect == 'False') {
163 $('.thumb-down').addClass('triaged').removeClass('triage');
164 }
165
166 {% if show_debug_info %} 175 {% if show_debug_info %}
167 if (findit.analysisIsDuplicate) { 176 if (findit.analysisIsDuplicate) {
168 $('#duplicate_reference').html('This analysis was automatically tr iaged as a duplicate because of another build analysis: ' + 177 $('#duplicate_reference').html('This analysis was automatically tr iaged as a duplicate because of another build analysis: ' +
169 '<a href="' + findit.triageReferenc eAnalysisUrl + '">{{triage_reference_analysis_master_name}}/' + 178 '<a href="' + findit.triageReferenc eAnalysisUrl + '">{{triage_reference_analysis_master_name}}/' +
170 '{{triage_reference_analysis_builde r_name}}/{{triage_reference_analysis_build_number}}</a>'); 179 '{{triage_reference_analysis_builde r_name}}/{{triage_reference_analysis_build_number}}</a>');
171 } 180 }
172 {% endif %} 181 {% endif %}
173 182
174 if (findit.showTriageHelpButton) { 183 if (findit.showTriageHelpButton) {
175 $('#triage_help_button').click(triageHelp); 184 $('#triage_help_button').click(triageHelp);
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 <b>Findit result:</b> 234 <b>Findit result:</b>
226 235
227 {% block try_job_result %}{% endblock try_job_result %} 236 {% block try_job_result %}{% endblock try_job_result %}
228 {% if analysis_completed %} 237 {% if analysis_completed %}
229 {% block result_tables %}{% endblock result_tables %} 238 {% block result_tables %}{% endblock result_tables %}
230 {% endif %} 239 {% endif %}
231 240
232 {% if analysis_completed %} 241 {% if analysis_completed %}
233 <br> 242 <br>
234 <div> 243 <div>
235 <b>Feedback on Findit result:</b><br> 244 <div id="triage_cls">
236 <div class="thumbs-up-down"> 245 {% if suspected_cls %}
237 <div class="triage thumb-up">Correct <img src="https://www.gstatic.com/ima ges/icons/material/system/1x/thumb_up_black_24dp.png"/></div> 246 <b>Feedback on Findit result:</b>
238 <div class="triage thumb-down"><img src="https://www.gstatic.com/images/ic ons/material/system/1x/thumb_down_black_24dp.png"/> Incorrect</div> 247 <table>
248 {% for suspected_cl in suspected_cls %}
249 <tr>
250 <td>{{suspected_cl.repo_name}}&nbsp;<a href="{{suspected_cl.url}}" >{{ suspected_cl.commit_position or suspected_cl.revision}}</a></td>
251 <td>
252 {% set cl_info = suspected_cl.repo_name + '/' + suspected_cl.rev ision %}
253 {% if suspected_cl.status == 0 %}
254 <input type="radio" name="{{ cl_info }}" value="0" checked=" checked" onchange="triageSuspectedCL(this)">Correct &nbsp;&nbsp;
255 <input type="radio" name="{{ cl_info }}" value="1" onchange= "triageSuspectedCL(this)">Inorrect
256 {% elif suspected_cl.status == 1 %}
257 <input type="radio" name="{{ cl_info }}" value="0" onchange= "triageSuspectedCL(this)">Correct &nbsp;&nbsp;
258 <input type="radio" name="{{ cl_info }}" value="1" checked=" checked" onchange="triageSuspectedCL(this)">Inorrect
259 {% else %}
260 <input type="radio" name="{{ cl_info }}" value="0" onchange= "triageSuspectedCL(this)">Correct &nbsp;&nbsp;
261 <input type="radio" name="{{ cl_info }}" value="1" onchange= "triageSuspectedCL(this)">Inorrect
262 {% endif %}
263 </td>
264 </tr>
265 {% endfor %}
266 </table>
267 {% endif %}
268 <div id="cl_result_triaged"></div>
239 </div> 269 </div>
240 {% if show_debug_info %} 270 {% if show_debug_info %}
241 <div id="duplicates_marked"></div> 271 <div id="duplicates_marked"></div>
242 <div id="duplicate_reference"></div> 272 <div id="duplicate_reference"></div>
243 {% endif %} 273 {% endif %}
244 </div> 274 </div>
245 {% endif %} 275 {% endif %}
246 276
247 {% if show_triage_help_button %} 277 {% if show_triage_help_button %}
248 <br><br> 278 <br><br>
249 <div id="triage_help"> 279 <div id="triage_help">
250 <button id="triage_help_button">Triage help</button> 280 <button id="triage_help_button">Triage help</button>
251 <br> 281 <br>
252 <div id="triage_help_result"> 282 <div id="triage_help_result">
253 </div> 283 </div>
254 </div> 284 </div>
255 {% endif %} 285 {% endif %}
256 286
257 {% if triage_history %} 287 {% if triage_history %}
258 <br> 288 <br>
259 <b>Triage history:</b> 289 <b>Triage history:</b>
260 <div> 290 <div>
261 <table> 291 <table>
262 <tr><th>When</th><th>Who</th><th>Result</th><th>Version</th></tr> 292 <tr><th>When</th><th>Who</th><th>CL</th><th>Result</th><th>Version</th>< /tr>
263 <tbody> 293 <tbody>
264 {% for triage_record in triage_history %} 294 {% for triage_record in triage_history %}
265 <tr> 295 <tr>
266 <td>{{triage_record.triage_time}}</td> 296 <td>{{triage_record.triage_time}}</td>
267 <td>{{triage_record.user_name}}</td> 297 <td>{{triage_record.user_name}}</td>
298 <td>{{triage_record.triaged_cl.repo_name}} <a href="{{triage_recor d.triaged_cl.url}}">{{triage_record.triaged_cl.commit_position or triage_record. triaged_cl.revision}}</a></td>
268 <td>{{triage_record.result_status}}</td> 299 <td>{{triage_record.result_status}}</td>
269 <td>{{triage_record.version | default('N/A', true)}}</td> 300 <td>{{triage_record.version | default('N/A', true)}}</td>
270 </tr> 301 </tr>
271 {% endfor %} 302 {% endfor %}
272 </tbody> 303 </tbody>
273 </table> 304 </table>
274 </div> 305 </div>
275 {% endif %} 306 {% endif %}
276 307
277 <div id="score-explanation-dialog" title="Score Explanation"> 308 <div id="score-explanation-dialog" title="Score Explanation">
278 The total score is a sum of scores for all hints.<br> 309 The total score is a sum of scores for all hints.<br>
279 Rules to set a score to an hint: 310 Rules to set a score to an hint:
280 <ul> 311 <ul>
281 <li>5: The CL added or deleted a file that appears in the failure log.</li > 312 <li>5: The CL added or deleted a file that appears in the failure log.</li >
282 <li>2: The CL modified a file that appears in the failure log.</li> 313 <li>2: The CL modified a file that appears in the failure log.</li>
283 <li>1: The CL modified a file that is related to another file 314 <li>1: The CL modified a file that is related to another file
284 appearing in the failure log. (eg: file.h was changed and 315 appearing in the failure log. (eg: file.h was changed and
285 file_unittest.cc or file_impl.cc appeared in the log.)</li> 316 file_unittest.cc or file_impl.cc appeared in the log.)</li>
286 <li>1: The CL rolled a dependency within src/DEPS and a file of that 317 <li>1: The CL rolled a dependency within src/DEPS and a file of that
287 dependency appears in the failure log. (eg: third_party/dep 318 dependency appears in the failure log. (eg: third_party/dep
288 was changed in src/DEPS and third_party/dep/f.cpp appeared 319 was changed in src/DEPS and third_party/dep/f.cpp appeared
289 in the log.)</li> 320 in the log.)</li>
290 </ul> 321 </ul>
291 (More rules will be added when implemented.) 322 (More rules will be added when implemented.)
292 </div> 323 </div>
293 </body> 324 </body>
OLDNEW
« no previous file with comments | « appengine/findit/model/suspected_cl_status.py ('k') | appengine/findit/templates/waterfall/compile_failure.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698