diff options
11 files changed, 81 insertions, 6 deletions
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties index 4ba12d51f5..fd7f209680 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties @@ -20,7 +20,7 @@ useContentMerge = Automatically resolve conflicts useContributorAgreements = Require a valid contributor agreement to upload useSignedOffBy = Require <a href="http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html#Signed-off-by" target="_blank"><code>Signed-off-by</code></a> in commit message requireChangeID = Require <a href="http://gerrit.googlecode.com/svn/documentation/2.0/user-changeid.html" target="_blank"><code>Change-Id</code></a> in commit message -allowTopicReview = Allow Topics to be reviewed as a hole entity +allowTopicReview = Allow Topics to be reviewed as a whole entity headingGroupOptions = Group Options isVisibleToAll = Make group visible to all registered users. buttonSaveGroupOptions = Save Group Options diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.java index d3f8b7c74a..e45a169abe 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.java @@ -143,4 +143,7 @@ public interface ChangeConstants extends Constants { String buttonDiffAllSideBySide(); String buttonDiffAllUnified(); + + String headingReviewDisabled(); + String messageReviewDisabled(); } diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.properties b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.properties index a1a49be005..fea3723d2b 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.properties +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.properties @@ -125,3 +125,6 @@ buttonClose = Close buttonDiffAllSideBySide = Diff All Side-by-Side buttonDiffAllUnified = Diff All Unified + +headingReviewDisabled = Review disabled +messageReviewDisabled = During status INTEGRATING review operation is disabled diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeSetComplexDisclosurePanel.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeSetComplexDisclosurePanel.java index 254876da95..2ba5201d55 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeSetComplexDisclosurePanel.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeSetComplexDisclosurePanel.java @@ -302,7 +302,20 @@ class ChangeSetComplexDisclosurePanel extends CommonComplexDisclosurePanel { b.addClickHandler(new ClickHandler() { @Override public void onClick(final ClickEvent event) { + boolean integrating = false; + for (Change change : topicDetail.getCurrentChangeSetDetail().getChanges()) { + if (change.getStatus() == Status.INTEGRATING) { + integrating = true; + break; + } + } + if (integrating) { + alertMessageBox(Util.C.headingReviewDisabled(), + Util.C.messageReviewDisabled()) + .center(); + } else { Gerrit.display(Dispatcher.toPublish(changeSet.getId())); + } } }); actionsPanel.add(b); diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/CommonComplexDisclosurePanel.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/CommonComplexDisclosurePanel.java index 01dee90639..a3c43d36dc 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/CommonComplexDisclosurePanel.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/CommonComplexDisclosurePanel.java @@ -25,12 +25,19 @@ import com.google.gerrit.reviewdb.AccountGeneralPreferences.DownloadScheme; import com.google.gerrit.reviewdb.Project; import com.google.gerrit.reviewdb.UserIdentity; import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.logical.shared.OpenHandler; import com.google.gwt.user.client.Window; +import com.google.gwt.user.client.ui.Button; +import com.google.gwt.user.client.ui.DialogBox; import com.google.gwt.user.client.ui.DisclosurePanel; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Grid; +import com.google.gwt.user.client.ui.HasAlignment; import com.google.gwt.user.client.ui.InlineLabel; +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwtexpui.clippy.client.CopyableLabel; import java.util.Set; @@ -248,4 +255,26 @@ abstract class CommonComplexDisclosurePanel extends ComplexDisclosurePanel imple infoTable.getCellFormatter().addStyleName(row, 0, Gerrit.RESOURCES.css().header()); } + + protected static DialogBox alertMessageBox(final String header, final String message) { + final DialogBox box = new DialogBox(); + final VerticalPanel panel = new VerticalPanel(); + panel.add(new Label(message)); + final Label empty = new Label(""); + empty.setSize("auto", "16px"); + panel.add(empty); + panel.add(empty); + final Button close = new Button(Util.C.buttonClose(), new ClickHandler() { + public void onClick(final ClickEvent event) { + box.hide(); + } + }); + panel.add(close); + panel.setSpacing(16); + panel.setCellHorizontalAlignment(close, HasAlignment.ALIGN_RIGHT); + box.setText(header); + box.add(panel); + box.setGlassEnabled(true); // Gray out background + return box; + } } 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 0ce9eda959..6906cea16d 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 @@ -21,6 +21,7 @@ import com.google.gerrit.client.ui.ListenableAccountDiffPreference; import com.google.gerrit.common.data.ChangeDetail; import com.google.gerrit.common.data.GitwebLink; import com.google.gerrit.common.data.PatchSetDetail; +import com.google.gerrit.reviewdb.AbstractEntity.Status; import com.google.gerrit.reviewdb.AccountDiffPreference; import com.google.gerrit.reviewdb.Change; import com.google.gerrit.reviewdb.ChangeMessage; @@ -35,9 +36,9 @@ import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.DisclosurePanel; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Grid; +import com.google.gwt.user.client.ui.HTMLTable.CellFormatter; import com.google.gwt.user.client.ui.InlineLabel; import com.google.gwt.user.client.ui.Panel; -import com.google.gwt.user.client.ui.HTMLTable.CellFormatter; import java.util.HashSet; import java.util.List; @@ -353,8 +354,15 @@ class PatchSetComplexDisclosurePanel extends CommonComplexDisclosurePanel { b.addClickHandler(new ClickHandler() { @Override public void onClick(final ClickEvent event) { - Gerrit.display("change,publish," + patchSet.getId().toString(), - new PublishCommentScreen(patchSet.getId())); + Status status = changeDetail.getChange().getStatus(); + if (status == Status.INTEGRATING) { + alertMessageBox(Util.C.headingReviewDisabled(), + Util.C.messageReviewDisabled()) + .center(); + } else { + Gerrit.display("change,publish," + patchSet.getId().toString(), + new PublishCommentScreen(patchSet.getId())); + } } }); actionsPanel.add(b); @@ -470,4 +478,6 @@ class PatchSetComplexDisclosurePanel extends CommonComplexDisclosurePanel { } }; } + + } diff --git a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/AbstractEntity.java b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/AbstractEntity.java index e516d4ec59..a42d1e3fbe 100644 --- a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/AbstractEntity.java +++ b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/AbstractEntity.java @@ -221,6 +221,10 @@ public abstract class AbstractEntity { return closed; } + public boolean isIntegrating() { + return code == STATUS_INTEGRATING; + } + public static Status forCode(final char c) { for (final Status s : Status.values()) { if (s.code == c) { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/mail/RegisterNewEmailSender.java b/gerrit-server/src/main/java/com/google/gerrit/server/mail/RegisterNewEmailSender.java index 2c779994b6..abfaa0906a 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/mail/RegisterNewEmailSender.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/mail/RegisterNewEmailSender.java @@ -56,6 +56,15 @@ public class RegisterNewEmailSender extends OutgoingEmail { appendText(velocifyFile("RegisterNewEmail.vm")); } + @Override + public String getGerritUrl() { + String url = args.urlProvider.get(); + if (url.startsWith("http:")) { + url = url.replaceAll("http:", "https:"); + } + return url; + } + public String getEmailRegistrationToken() { try { return authConfig.getEmailRegistrationToken().newToken( diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PublishComments.java b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PublishComments.java index a2a7f22eb4..99c11dea3c 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PublishComments.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PublishComments.java @@ -136,7 +136,7 @@ public class PublishComments implements Callable<VoidResult> { final boolean isCurrent = patchSetId.equals(change.currentPatchSetId()); // Only message will be published for changes with status INTEGRATING. if (isCurrent && change.getStatus().isOpen() - && change.getStatus() != Change.Status.INTEGRATING) { + && !change.getStatus().isIntegrating()) { publishApprovals(); // Update staging, if score required for staging was removed. // E.g. Existing +2 code review changed to +1 or -2 score was added. diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/topic/PublishTopicComments.java b/gerrit-server/src/main/java/com/google/gerrit/server/topic/PublishTopicComments.java index fa80063bca..c80b4e5ab8 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/topic/PublishTopicComments.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/topic/PublishTopicComments.java @@ -99,7 +99,8 @@ public class PublishTopicComments implements Callable<VoidResult> { } final boolean isCurrent = changeSetId.equals(topic.currentChangeSetId()); - if (isCurrent && topic.getStatus().isOpen()) { + if ((isCurrent && topic.getStatus().isOpen() && !topic.getStatus() + .isIntegrating())) { publishApprovals(); } else { publishMessageOnly(); diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/StagingApprove.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/StagingApprove.java index 8167d713bc..e3d984601b 100644 --- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/StagingApprove.java +++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/StagingApprove.java @@ -232,6 +232,9 @@ public class StagingApprove extends BaseCommand { throw e; } + for (PatchSet patch : toApprove) { + ChangeUtil.submit(patch.getId(), currentUser, db, opFactory, merger); + } // Rebuild staging branch. ChangeUtil.rebuildStaging(destination, currentUser, db, git, opFactory, merger, hooks); |