Append change status, if applicable
The needed code got brought over from gr-related-changes-list.js.
Not all code paths are reachable, as we only have shallow ChangeInfo
objects. We leave the code as untouched as possible to allow for
easier updating from gr-related-changes-list.js.
Change-Id: Ia32a4bab4282770acfd4896ce3c16f4457d3e5ea
diff --git a/gr-zuul/gr-zuul.js b/gr-zuul/gr-zuul.js
index fe0c1f6..89e5527 100644
--- a/gr-zuul/gr-zuul.js
+++ b/gr-zuul/gr-zuul.js
@@ -58,6 +58,43 @@
});
}
+ // copied from gr-related-changes-list.js, which is inaccessible from here.
+ // Resolved uses of `this.ChangeStatus.[...]`, as that's inaccessible from here too.
+ // Removed _isIndirectAncestor check, as the needed data is inaccessible from here.
+ // Not all code paths are reachable, as we only have shallow ChangeInfo objects. We leave the
+ // code here nonetheless, to allow for easier updating from gr-related-changes-list.js.
+ _computeChangeStatusClass(change) {
+ const classes = ['status'];
+ if (change._revision_number != change._current_revision_number) {
+ classes.push('notCurrent');
+ } else if (change.submittable) {
+ classes.push('submittable');
+ } else if (change.status == 'NEW') {
+ classes.push('hidden');
+ }
+ return classes.join(' ');
+ }
+
+ // copied from gr-related-changes-list.js, which is inaccessible from here.
+ // Resolved uses of `this.ChangeStatus.[...]`, as that's inaccessible from here too.
+ // Removed _isIndirectAncestor check, as the needed data is inaccessible from here.
+ // Not all code paths are reachable, as we only have shallow ChangeInfo objects. We leave the
+ // code here nonetheless, to allow for easier updating from gr-related-changes-list.js.
+ _computeChangeStatus(change) {
+ switch (change.status) {
+ case 'MERGED':
+ return 'Merged';
+ case 'ABANDONED':
+ return 'Abandoned';
+ }
+ if (change._revision_number != change._current_revision_number) {
+ return 'Not current';
+ } else if (change.submittable) {
+ return 'Submittable';
+ }
+ return '';
+ }
+
setHidden(hidden) {
if (this.hidden != hidden) {
this.hidden = hidden;
diff --git a/gr-zuul/gr-zuul_html.js b/gr-zuul/gr-zuul_html.js
index e94376f..5e208d4 100644
--- a/gr-zuul/gr-zuul_html.js
+++ b/gr-zuul/gr-zuul_html.js
@@ -63,6 +63,9 @@
.missingFromThisServer {
color: #d17171;
}
+ .hidden {
+ display: none;
+ }
</style>
<template is="dom-if" if="[[_crd_loaded]]">
<template is="dom-if" if="[[_isDependsOnSectionVisible()]]">
@@ -76,6 +79,9 @@
>
[[item.project]]: [[item.branch]]: [[item.subject]]
</a>
+ <span class$="[[_computeChangeStatusClass(item)]]">
+ ([[_computeChangeStatus(item)]])
+ </span>
<template is="dom-if" if="[[_crd.cycle]]">
<span class="status dependencyCycleDetected">
(Dependency cycle detected)
@@ -106,6 +112,9 @@
>
[[item.project]]: [[item.branch]]: [[item.subject]]
</a>
+ <span class$="[[_computeChangeStatusClass(item)]]">
+ ([[_computeChangeStatus(item)]])
+ </span>
<template is="dom-if" if="[[_crd.cycle]]">
<span class="status dependencyCycleDetected">
(Dependency cycle detected)