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

Side by Side Diff: Tools/GardeningServer/model/ct-failure-group.html

Issue 476903004: [sheriff-o-matic]: Basic trooper display for sheriff-o-matic. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 3 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 <!-- 1 <!--
2 Copyright 2014 The Chromium Authors. All rights reserved. 2 Copyright 2014 The Chromium Authors. All rights reserved.
3 Use of this source code is governed by a BSD-style license that can be 3 Use of this source code is governed by a BSD-style license that can be
4 found in the LICENSE file. 4 found in the LICENSE file.
5 --> 5 -->
6 6
7 <link rel="import" href="ct-commit-list.html"> 7 <link rel="import" href="ct-commit-list.html">
8 8
9 <script> 9 <script>
10 function CTFailureGroup(key, failures, commitList) { 10 function CTFailureGroup(key, data) {
11 this.key = key; 11 this.key = key;
12 this.failures = failures; 12 this.data = data;
13 this.commitList = commitList; 13 this._annotation = CTFailureGroup._mergeAnnotations(data.getAnnotations());
14 this._annotation = CTFailureGroup._mergeAnnotations(failures.map(function(fail ure) {
15 return failure.annotations();
16 }).flatten());
17 this._computeProperties(); 14 this._computeProperties();
18 } 15 }
19 16
17 CTFailureGroup.prototype.dataToExamine = function() {
18 return this.data.dataToExamine();
19 }
20
20 CTFailureGroup.prototype.snoozeUntil = function(time) { 21 CTFailureGroup.prototype.snoozeUntil = function(time) {
21 return this._annotate({ 22 return this._annotate({
22 snoozeTime: time, 23 snoozeTime: time,
23 }); 24 });
24 }; 25 };
25 26
26 CTFailureGroup.prototype.unsnooze = function() { 27 CTFailureGroup.prototype.unsnooze = function() {
27 return this._annotate({ 28 return this._annotate({
28 snoozeTime: undefined, 29 snoozeTime: undefined,
29 }); 30 });
(...skipping 23 matching lines...) Expand all
53 } 54 }
54 55
55 this.bug = this._annotation.bug; 56 this.bug = this._annotation.bug;
56 // FIXME: Bug labels would be simpler to implement as a filter in the UI. 57 // FIXME: Bug labels would be simpler to implement as a filter in the UI.
57 if (this.bug != null) 58 if (this.bug != null)
58 this.bugLabel = 'Bug ' + /([0-9]{3,})/.exec(this.bug)[0]; 59 this.bugLabel = 'Bug ' + /([0-9]{3,})/.exec(this.bug)[0];
59 else 60 else
60 this.bugLabel = undefined; 61 this.bugLabel = undefined;
61 }; 62 };
62 63
63 CTFailureGroup.prototype.failureKeys = function() {
64 return this.failures.map(function(failure) {
65 return failure.keys();
66 }).flatten();
67 };
68
69 CTFailureGroup._mergeAnnotations = function(failureAnnotations) { 64 CTFailureGroup._mergeAnnotations = function(failureAnnotations) {
70 // FIXME: This should be a union of all bugs. 65 // FIXME: This should be a union of all bugs.
71 var bug = failureAnnotations.map('bug').compact().first(); 66 var bug = failureAnnotations.map('bug').compact().first();
72 67
73 // The group is only snoozed if all the failures specify a snooze-time, and on ly 68 // The group is only snoozed if all the failures specify a snooze-time, and on ly
74 // until the first has elapsed. 69 // until the first has elapsed.
75 var snoozeTimes = failureAnnotations.map('snoozeTime').compact(); 70 var snoozeTimes = failureAnnotations.map('snoozeTime').compact();
76 var snoozeTime = snoozeTimes.length < failureAnnotations.length ? undefined : snoozeTimes.min(); 71 var snoozeTime = snoozeTimes.length < failureAnnotations.length ? undefined : snoozeTimes.min();
77 72
78 var annotation = {}; 73 var annotation = {};
79 if (bug != null) { 74 if (bug != null) {
80 annotation.bug = bug; 75 annotation.bug = bug;
81 } 76 }
82 if (snoozeTime != null) { 77 if (snoozeTime != null) {
83 annotation.snoozeTime = snoozeTime; 78 annotation.snoozeTime = snoozeTime;
84 } 79 }
85 return annotation; 80 return annotation;
86 }; 81 };
87 82
88 CTFailureGroup.prototype._annotate = function(newAnnotation) { 83 CTFailureGroup.prototype._annotate = function(newAnnotation) {
89 var failureAnnotations = []; 84 var failureAnnotations = [];
90 // FIXME: Post the new annotation to frontend rather than storing locally. 85 // FIXME: Post the new annotation to frontend rather than storing locally.
91 return CTFailureGroup.fetchAnnotations().then(function(annotations) { 86 return CTFailureGroup.fetchAnnotations().then(function(annotations) {
92 this.failureKeys().forEach(function(failureKey) { 87 this.data.failureKeys().forEach(function(failureKey) {
93 var annotation = annotations[failureKey] || {}; 88 var annotation = annotations[failureKey] || {};
94 89
95 Object.keys(newAnnotation, function(key, value) { 90 Object.keys(newAnnotation, function(key, value) {
96 if (value === undefined) { 91 if (value === undefined) {
97 delete annotation[key]; 92 delete annotation[key];
98 } else { 93 } else {
99 annotation[key] = value; 94 annotation[key] = value;
100 } 95 }
101 }); 96 });
102 97
(...skipping 11 matching lines...) Expand all
114 }.bind(this)); 109 }.bind(this));
115 }; 110 };
116 111
117 CTFailureGroup.fetchAnnotations = function() { 112 CTFailureGroup.fetchAnnotations = function() {
118 // FIXME: Fetch annotations from frontend. 113 // FIXME: Fetch annotations from frontend.
119 var stored = localStorage.CTFailureGroupAnnotations; 114 var stored = localStorage.CTFailureGroupAnnotations;
120 var annotations = stored ? JSON.parse(stored) : {}; 115 var annotations = stored ? JSON.parse(stored) : {};
121 return Promise.resolve(annotations); 116 return Promise.resolve(annotations);
122 }; 117 };
123 </script> 118 </script>
OLDNEW
« no previous file with comments | « Tools/GardeningServer/lib/chart-loader.html ('k') | Tools/GardeningServer/model/ct-failures.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698