| Index: Tools/GardeningServer/model/ct-failure-group.html
|
| diff --git a/Tools/GardeningServer/model/ct-failure-group.html b/Tools/GardeningServer/model/ct-failure-group.html
|
| deleted file mode 100644
|
| index eab5796a6e1475f159d920a3b484caa9b6e60d54..0000000000000000000000000000000000000000
|
| --- a/Tools/GardeningServer/model/ct-failure-group.html
|
| +++ /dev/null
|
| @@ -1,129 +0,0 @@
|
| -<!--
|
| -Copyright 2014 The Chromium Authors. All rights reserved.
|
| -Use of this source code is governed by a BSD-style license that can be
|
| -found in the LICENSE file.
|
| --->
|
| -
|
| -<link rel="import" href="ct-commit-list.html">
|
| -
|
| -<script>
|
| -function CTFailureGroup(tree, data, category) {
|
| - this.key = data.key;
|
| - this.tree = tree;
|
| - this.examineUrl = this.tree + '/failure/' + encodeURIComponent(this.key);
|
| - this.data = data;
|
| -
|
| - this._annotation = CTFailureGroup._mergeAnnotations(data.getAnnotations());
|
| - this._originalCategory = category || 'default';
|
| - this._computeProperties();
|
| -}
|
| -
|
| -CTFailureGroup.prototype.snoozeUntil = function(time) {
|
| - return this._annotate({
|
| - snoozeTime: time,
|
| - });
|
| -};
|
| -
|
| -CTFailureGroup.prototype.unsnooze = function() {
|
| - return this._annotate({
|
| - snoozeTime: undefined,
|
| - });
|
| -};
|
| -
|
| -CTFailureGroup.prototype.setBug = function(bug) {
|
| - if (/^[0-9]+$/.test(bug))
|
| - bug = 'https://crbug.com/' + bug;
|
| - return this._annotate({
|
| - bug: bug,
|
| - });
|
| -};
|
| -
|
| -CTFailureGroup.prototype.clearBug = function(bug) {
|
| - return this._annotate({
|
| - bug: undefined,
|
| - });
|
| -};
|
| -
|
| -CTFailureGroup.prototype._isTreeCloser = function() {
|
| - return this.data.isTreeCloser && this.data.isTreeCloser();
|
| -}
|
| -
|
| -CTFailureGroup.prototype._failedOnce = function() {
|
| - return this.data.failedOnce && this.data.failedOnce();
|
| -}
|
| -
|
| -CTFailureGroup.prototype._computeProperties = function() {
|
| - this.isSnoozed = Date.now() < this._annotation.snoozeTime;
|
| - if (this.isSnoozed) {
|
| - this.category = 'snoozed';
|
| - } else if (this._isTreeCloser()) {
|
| - this.category = 'treeCloser';
|
| - } else if (this._failedOnce()) {
|
| - this.category = 'failedOnce';
|
| - } else {
|
| - this.category = this._originalCategory;
|
| - }
|
| -
|
| - this.bug = this._annotation.bug;
|
| - // FIXME: Bug labels would be simpler to implement as a filter in the UI.
|
| - if (this.bug != null)
|
| - this.bugLabel = 'Bug ' + /([0-9]{3,})/.exec(this.bug)[0];
|
| - else
|
| - this.bugLabel = undefined;
|
| -};
|
| -
|
| -CTFailureGroup._mergeAnnotations = function(failureAnnotations) {
|
| - // FIXME: This should be a union of all bugs.
|
| - var bug = failureAnnotations.map('bug').compact().first();
|
| -
|
| - // The group is only snoozed if all the failures specify a snooze-time, and only
|
| - // until the first has elapsed.
|
| - var snoozeTimes = failureAnnotations.map('snoozeTime').compact();
|
| - var snoozeTime = snoozeTimes.length < failureAnnotations.length ? undefined : snoozeTimes.min();
|
| -
|
| - var annotation = {};
|
| - if (bug != null) {
|
| - annotation.bug = bug;
|
| - }
|
| - if (snoozeTime != null) {
|
| - annotation.snoozeTime = snoozeTime;
|
| - }
|
| - return annotation;
|
| -};
|
| -
|
| -CTFailureGroup.prototype._annotate = function(newAnnotation) {
|
| - var failureAnnotations = [];
|
| - // FIXME: Post the new annotation to frontend rather than storing locally.
|
| - return CTFailureGroup.fetchAnnotations().then(function(annotations) {
|
| - this.data.failureKeys().forEach(function(failureKey) {
|
| - var annotation = annotations[failureKey] || {};
|
| -
|
| - Object.keys(newAnnotation, function(key, value) {
|
| - if (value === undefined) {
|
| - delete annotation[key];
|
| - } else {
|
| - annotation[key] = value;
|
| - }
|
| - });
|
| -
|
| - if (Object.size(annotation) == 0) {
|
| - delete annotations[failureKey];
|
| - } else {
|
| - annotations[failureKey] = annotation;
|
| - failureAnnotations.push(annotation);
|
| - }
|
| - });
|
| -
|
| - localStorage.CTFailureGroupAnnotations = JSON.stringify(annotations);
|
| - this._annotation = CTFailureGroup._mergeAnnotations(failureAnnotations);
|
| - this._computeProperties();
|
| - }.bind(this));
|
| -};
|
| -
|
| -CTFailureGroup.fetchAnnotations = function() {
|
| - // FIXME: Fetch annotations from frontend.
|
| - var stored = localStorage.CTFailureGroupAnnotations;
|
| - var annotations = stored ? JSON.parse(stored) : {};
|
| - return Promise.resolve(annotations);
|
| -};
|
| -</script>
|
|
|