Merge "Checks table: Order checks according to state and then name"
diff --git a/gr-checks/gr-checks-change-list-header-view.html b/gr-checks/gr-checks-change-list-header-view.html
index 9ddc13a..efdf442 100644
--- a/gr-checks/gr-checks-change-list-header-view.html
+++ b/gr-checks/gr-checks-change-list-header-view.html
@@ -1,11 +1,11 @@
<dom-module id="gr-checks-change-list-header-view">
- <style>
- :host {
- display: table-cell;
- padding: 0 3px;
- }
- </style>
<template>
+ <style>
+ :host {
+ display: table-cell;
+ padding: 0 3px;
+ }
+ </style>
Checks
</template>
diff --git a/gr-checks/gr-checks-change-list-item-cell-view.html b/gr-checks/gr-checks-change-list-item-cell-view.html
index 61af378..8536a66 100644
--- a/gr-checks/gr-checks-change-list-item-cell-view.html
+++ b/gr-checks/gr-checks-change-list-item-cell-view.html
@@ -1,12 +1,12 @@
<dom-module id="gr-checks-change-list-item-cell-view">
- <style>
- :host {
- display: inline-block;
- text-align: center;
- width: 100%;
- }
- </style>
<template>
+ <style>
+ :host {
+ display: inline-block;
+ text-align: center;
+ width: 100%;
+ }
+ </style>
</template>
<script src="gr-checks-change-list-item-cell-view.js"></script>
diff --git a/gr-checks/gr-checks-chip-view.html b/gr-checks/gr-checks-chip-view.html
index 2bda0de..e4358b5 100644
--- a/gr-checks/gr-checks-chip-view.html
+++ b/gr-checks/gr-checks-chip-view.html
@@ -4,6 +4,7 @@
:host {
display: inline-block;
+ cursor: pointer;
}
.chip {
@@ -20,7 +21,7 @@
<template is="dom-if" if="[[_hasChecks]]">
Checks:
<span class$="[[_chipClasses]]">
- <gr-checks-status status="[[_status]]"></gr-checks-status>
+ <gr-checks-status status="[[_status]]" downgrade-failure-to-warning="[[_downgradeFailureToWarning]]"></gr-checks-status>
[[_statusString]]
</span>
</template>
diff --git a/gr-checks/gr-checks-chip-view.js b/gr-checks/gr-checks-chip-view.js
index 70ce5d0..3ed66e1 100644
--- a/gr-checks/gr-checks-chip-view.js
+++ b/gr-checks/gr-checks-chip-view.js
@@ -45,6 +45,22 @@
}, {total: checks.length});
}
+ function downgradeFailureToWarning(checks) {
+ const hasFailedCheck = checks.some(
+ (check) => {
+ return check.state == Statuses.FAILED;
+ }
+ )
+ if (!hasFailedCheck) return false;
+ const hasRequiredFailedCheck = checks.some(
+ (check) => {
+ return check.state == Statuses.FAILED && check.blocking && check.blocking.length > 0;
+ }
+ )
+ return !hasRequiredFailedCheck;
+ }
+
+
Polymer({
is: 'gr-checks-chip-view',
_legacyUndefinedCheck: true,
@@ -62,12 +78,34 @@
computed: '_computeStatusString(_status, _checkStatuses)',
},
_chipClasses: {type: String, computed: '_computeChipClass(_status)'},
+ _downgradeFailureToWarning: {
+ type: Boolean,
+ value: false
+ }
},
observers: [
'_fetchChecks(change, revision, getChecks)',
],
+ listeners: {
+ 'tap': 'showChecksTable'
+ },
+
+ showChecksTable() {
+ this.dispatchEvent(
+ new CustomEvent(
+ 'show-checks-table',
+ {
+ bubbles: true,
+ composed: true,
+ detail: {
+ tab: 'change-view-tab-content-checks'
+ }
+ })
+ );
+ },
+
/**
* @param {!Defs.Change} change
* @param {!Defs.Revision} revision
@@ -79,6 +117,7 @@
if (checks.length > 0) {
this.set(
'_checkStatuses', computeCheckStatuses(checks));
+ this.set('_downgradeFailureToWarning', downgradeFailureToWarning(checks));
}
});
},
diff --git a/gr-checks/gr-checks-item.html b/gr-checks/gr-checks-item.html
index 18d85bb..64a061b 100644
--- a/gr-checks/gr-checks-item.html
+++ b/gr-checks/gr-checks-item.html
@@ -23,7 +23,7 @@
<td>[[check.checker_name]]</td>
<td>[[_requiredForMerge]]</td>
<td>
- <gr-checks-status show-text status="[[check.state]]"></gr-checks-status>
+ <gr-checks-status show-text status="[[check.state]]" downgrade-failure-to-warning="[[false]]"></gr-checks-status>
</td>
<td><!--Check System--></td>
<td>[[_startTime]]</td>
diff --git a/gr-checks/gr-checks-status.html b/gr-checks/gr-checks-status.html
index ba5eef0..a1072bd 100644
--- a/gr-checks/gr-checks-status.html
+++ b/gr-checks/gr-checks-status.html
@@ -14,22 +14,19 @@
text-align: center;
width: 16px;
}
- .successful > i {
- background-color: #00C752;
- }
- .failed > i {
- background-color: #DA4236;
- }
- .in-progress > i {
- background-color: #ddd;
- }
- .unevaluated > i {
- background-color: black;
+ svg {
+ display: inline-block;
+ vertical-align: middle;
}
</style>
<span class$="[[_className]]">
<template is="dom-if" if="[[_isUnevaluated(status)]]">
- <i>⏹</i>
+ <svg width="18" height="18" xmlns="http://www.w3.org/2000/svg">
+ <g fill="none" fill-rule="evenodd">
+ <path d="M0 0h18v18H0z"/>
+ <path d="M9 11.8a2.8 2.8 0 1 1 0-5.6 2.8 2.8 0 0 1 0 5.6M9 2a7 7 0 1 0 0 14A7 7 0 0 0 9 2" fill="#9E9E9E"/>
+ </g>
+ </svg>
<template is="dom-if" if="[[showText]]">
<span>
Unevaluated
@@ -37,7 +34,12 @@
</template>
</template>
<template is="dom-if" if="[[_isInProgress(status)]]">
- <i>…</i>
+ <svg width="18" height="18" xmlns="http://www.w3.org/2000/svg">
+ <g fill="none" fill-rule="evenodd">
+ <path d="M12.184 9.293c-.86 0-1.641-.39-2.15-.976L9.8 9.489l.82.78V13.2h-.78v-2.344l-.821-.781-.39 1.719-2.736-.547.157-.782 1.914.391.625-3.164-.703.273v1.328h-.782V7.457l2.032-.86c.117 0 .196-.039.313-.039.273 0 .508.157.664.391l.39.625c.313.547.939.938 1.68.938v.781zM10.034 4.8c.43 0 .782.352.782.782 0 .43-.352.781-.781.781a.783.783 0 0 1-.782-.781c0-.43.352-.782.782-.782zM9 2a7 7 0 1 0 .002 14.002A7 7 0 0 0 9 2z" fill="#9C27B0"/>
+ <path d="M0 0h18v18H0z"/>
+ </g>
+ </svg>
<template is="dom-if" if="[[showText]]">
<span>
In progress
@@ -45,7 +47,12 @@
</template>
</template>
<template is="dom-if" if="[[_isSuccessful(status)]]">
- <i>✓</i>
+ <svg width="18" height="18" xmlns="http://www.w3.org/2000/svg">
+ <g fill="none" fill-rule="evenodd">
+ <path d="M9 2C5.136 2 2 5.136 2 9s3.136 7 7 7 7-3.136 7-7-3.136-7-7-7zM7.6 12.5L4.1 9l.987-.987L7.6 10.519l5.313-5.313.987.994-6.3 6.3z" fill="#00C752"/>
+ <path d="M0 0h18v18H0z"/>
+ </g>
+ </svg>
<template is="dom-if" if="[[showText]]">
<span>
Successful
@@ -53,7 +60,28 @@
</template>
</template>
<template is="dom-if" if="[[_isFailed(status)]]">
- <i>!</i>
+ <svg width="18" height="18" xmlns="http://www.w3.org/2000/svg">
+ <g fill="none" fill-rule="evenodd">
+ <path d="M9 2a7 7 0 1 0 0 14A7 7 0 0 0 9 2zm-1 8V5h2v5H8zm0 3v-2h2v2H8z" fill="#DA4236"/>
+ <path d="M0 0h18v18H0z"/>
+ </g>
+ </svg>
+ <template is="dom-if" if="[[showText]]">
+ <span>
+ Failed
+ </span>
+ </template>
+ </template>
+ <template is="dom-if" if="[[_isWarning(status)]]">
+ <svg width="18" height="18" xmlns="http://www.w3.org/2000/svg">
+ <g fill="none" fill-rule="evenodd">
+ <g transform="translate(2 2)">
+ <circle fill="#F29900" cx="6.921" cy="6.921" r="6.921"/>
+ <path d="M6.92 1.3l4.686 8.2H2.235L6.92 1.3zm-.584 5.271h1.171V3.643H6.336V6.57zm0 2.258h1.171V7.657H6.336V8.83z" fill="#F8F9FA"/>
+ </g>
+ <path d="M0 0h18v18H0z"/>
+ </g>
+ </svg>
<template is="dom-if" if="[[showText]]">
<span>
Failed
diff --git a/gr-checks/gr-checks-status.js b/gr-checks/gr-checks-status.js
index 721c3cf..0f18339 100644
--- a/gr-checks/gr-checks-status.js
+++ b/gr-checks/gr-checks-status.js
@@ -12,7 +12,7 @@
reflectToAttribute: true,
},
status: String,
- _className: {type: String, computed: '_computeClassName(status)'},
+ downgradeFailureToWarning: Boolean
},
_isUnevaluated(status) {
@@ -28,11 +28,12 @@
},
_isFailed(status) {
- return window.Gerrit.Checks.isFailed(status);
+ return !this.downgradeFailureToWarning && window.Gerrit.Checks.isFailed(status);
},
- _computeClassName(status) {
- return window.Gerrit.Checks.statusClass(status);
+ _isWarning(status) {
+ return this.downgradeFailureToWarning && window.Gerrit.Checks.isFailed(status);
},
+
});
})();
diff --git a/java/com/google/gerrit/plugins/checks/CheckerUuid.java b/java/com/google/gerrit/plugins/checks/CheckerUuid.java
index f34ab7d..c3609b4 100644
--- a/java/com/google/gerrit/plugins/checks/CheckerUuid.java
+++ b/java/com/google/gerrit/plugins/checks/CheckerUuid.java
@@ -147,12 +147,12 @@
}
@Override
- public String toString() {
+ public final String toString() {
return get();
}
@Override
- public int compareTo(CheckerUuid o) {
+ public final int compareTo(CheckerUuid o) {
return get().compareTo(o.get());
}
}
diff --git a/java/com/google/gerrit/plugins/checks/CombinedCheckStateCache.java b/java/com/google/gerrit/plugins/checks/CombinedCheckStateCache.java
index c348550..bcbd429 100644
--- a/java/com/google/gerrit/plugins/checks/CombinedCheckStateCache.java
+++ b/java/com/google/gerrit/plugins/checks/CombinedCheckStateCache.java
@@ -87,8 +87,9 @@
new Description("Latency for reloading combined check state")
.setCumulative()
.setUnit(Units.MILLISECONDS),
- Field.ofBoolean(
- "updated", "whether reloading resulted in updating the cached value"));
+ Field.ofBoolean("updated")
+ .description("whether reloading resulted in updating the cached value")
+ .build());
reloadCount = AtomicLongMap.create();
}