Show whether a related change is merged or old.
Include a colored circle at the end of the related change line to
indicate the state. Use a black circle when the change is a link to
gitweb and a orange circle when the link to the change is not the
current patch set. Expose the current_revision_number on the
ChangeAndCommit object.
Change-Id: I5c629ecac61a4b9c6fc709f328a290313e3d6093
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritCss.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritCss.java
index 5bb207d..0020647 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritCss.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritCss.java
@@ -199,8 +199,10 @@
String projectFilterPanel();
String projectNameColumn();
String publishCommentsScreen();
- String relatedChangesTabPanel();
+ String relatedChangesGitweb();
+ String relatedChangesNotCurrent();
String relatedChangesSubject();
+ String relatedChangesTabPanel();
String registerScreenExplain();
String registerScreenNextLinks();
String registerScreenSection();
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChanges.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChanges.java
index f98e8b4..0d46f8f 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChanges.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChanges.java
@@ -330,18 +330,27 @@
final native boolean has_revision_number()
/*-{ return this.hasOwnProperty('_revision_number') }-*/;
+ final native boolean has_current_revision_number()
+ /*-{ return this.hasOwnProperty('_current_revision_number') }-*/;
+
final native int _change_number()
/*-{ return this._change_number }-*/;
final native int _revision_number()
/*-{ return this._revision_number }-*/;
+ final native int _current_revision_number()
+ /*-{ return this._current_revision_number }-*/;
+
final native void set_change_number(int n)
/*-{ this._change_number=n; }-*/;
final native void set_revision_number(int n)
/*-{ this._revision_number=n; }-*/;
+ final native void set_current_revision_number(int n)
+ /*-{ this._current_revision_number=n; }-*/;
+
protected ChangeAndCommit() {
}
}
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChangesTab.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChangesTab.java
index 162471e..5e3cb03 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChangesTab.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChangesTab.java
@@ -17,6 +17,7 @@
import com.google.gerrit.client.Gerrit;
import com.google.gerrit.client.GitwebLink;
import com.google.gerrit.client.change.RelatedChanges.ChangeAndCommit;
+import com.google.gerrit.client.changes.Util;
import com.google.gerrit.client.ui.NavigationTable;
import com.google.gerrit.common.PageLinks;
import com.google.gerrit.reviewdb.client.PatchSet;
@@ -278,6 +279,18 @@
}
sb.closeTd();
+ sb.openTd();
+ GitwebLink gw = Gerrit.getGitwebLink();
+ if (gw != null && (!info.has_change_number() || !info.has_revision_number())) {
+ sb.addStyleName(Gerrit.RESOURCES.css().relatedChangesGitweb());
+ sb.setAttribute("title", gw.getLinkName());
+ } else if (info.has_current_revision_number() && info.has_revision_number()
+ && info._current_revision_number() != info._revision_number()) {
+ sb.addStyleName(Gerrit.RESOURCES.css().relatedChangesNotCurrent());
+ sb.setAttribute("title", Util.C.notCurrent());
+ }
+ sb.closeTd();
+
sb.closeTr();
}
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/gerrit.css b/gerrit-gwtui/src/main/java/com/google/gerrit/client/gerrit.css
index 9c8ec57..029dd3b 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/gerrit.css
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/gerrit.css
@@ -1642,3 +1642,11 @@
.relatedChangesTabPanel .gwt-TabBarItem-disabled {
display: none;
}
+.relatedChangesNotCurrent:after {
+ content: '\25CF'; /* circle */
+ color: #FFA62F; /* orange */
+}
+.relatedChangesGitweb:after {
+ content: '\25CF'; /* circle */
+ color: #000;
+}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/GetRelated.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/GetRelated.java
index d804f38..7ac872d 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/GetRelated.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/GetRelated.java
@@ -287,12 +287,15 @@
CommitInfo commit;
Integer _changeNumber;
Integer _revisionNumber;
+ Integer _currentRevisionNumber;
ChangeAndCommit(@Nullable Change change, @Nullable PatchSet ps, RevCommit c) {
if (change != null) {
changeId = change.getKey().get();
_changeNumber = change.getChangeId();
_revisionNumber = ps != null ? ps.getPatchSetId() : null;
+ PatchSet.Id curr = change.currentPatchSetId();
+ _currentRevisionNumber = curr != null ? curr.get() : null;
}
commit = new CommitInfo();