Highlight patch sets that have drafts
On the change screen, if a patch set has a draft comment, its header will
be highlighted.
Bug: Issue 667
Change-Id: I537db90a940c9df7c4b7c28974adac5b29c8abf4
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 489ff00..031f248 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
@@ -176,6 +176,7 @@
String patchSetLink();
String patchSetRevision();
String patchSetUserIdentity();
+ String patchSetWithDraft();
String patchSizeCell();
String pluginsTable();
String posscore();
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchSetComplexDisclosurePanel.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchSetComplexDisclosurePanel.java
index 76f77a2..14c3d77 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchSetComplexDisclosurePanel.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchSetComplexDisclosurePanel.java
@@ -110,6 +110,11 @@
} else {
addOpenHandler(this);
}
+
+ if(ps.getHasDraftComments()) {
+ addStyleName(Gerrit.RESOURCES.css().patchSetWithDraft());
+ }
+
}
public void setDiffBaseId(PatchSet.Id diffBaseId) {
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 9425443..192698e 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
@@ -872,6 +872,10 @@
font-size: 8pt;
}
+.patchSetWithDraft .header td {
+ color: #ff5555;
+}
+
.changeScreen .gwt-DisclosurePanel .content {
margin-bottom: 10px;
}
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/ChangeDetailFactory.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/ChangeDetailFactory.java
index 120b9af..56f481a 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/ChangeDetailFactory.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/ChangeDetailFactory.java
@@ -178,6 +178,12 @@
ResultSet<PatchSet> source = db.patchSets().byChange(changeId);
List<PatchSet> patches = new ArrayList<PatchSet>();
for (PatchSet ps : source) {
+ final CurrentUser user = control.getCurrentUser();
+ if (user instanceof IdentifiedUser) {
+ final Account.Id me = ((IdentifiedUser) user).getAccountId();
+ ps.setHasDraftComments(db.patchComments()
+ .draftByPatchSetAuthor(ps.getId(), me).toList().size() > 0);
+ }
if (control.isPatchVisible(ps, db)) {
patches.add(ps);
}
diff --git a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/PatchSet.java b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/PatchSet.java
index 54c556d..4afddfd 100644
--- a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/PatchSet.java
+++ b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/PatchSet.java
@@ -136,6 +136,9 @@
@Column(id = 5)
protected boolean draft;
+ /** Not persisted in the database */
+ protected boolean hasDraftComments;
+
protected PatchSet() {
}
@@ -187,6 +190,14 @@
return id.toRefName();
}
+ public boolean getHasDraftComments() {
+ return hasDraftComments;
+ }
+
+ public void setHasDraftComments(boolean hasDraftComments) {
+ this.hasDraftComments = hasDraftComments;
+ }
+
@Override
public String toString() {
return "[PatchSet " + getId().toString() + "]";