summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIsmo Haataja <ismo.haataja@digia.com>2014-04-04 00:01:18 +0300
committerIsmo Haataja <ismo.haataja@digia.com>2014-06-12 14:06:57 +0200
commitf4c9a8da43dc4b48abaab6703756ec90edb21895 (patch)
treebcbffcef63930025fbbd8294704925699e8cfa90
parent8358fb5526c248d6dda96830781e747444197de2 (diff)
Stage from one page review.
Added a button to stage a change directly from one page review. Change-Id: I7d124edc611c292c22664809702c53e44ee90ddf Reviewed-by: Ismo Haataja <ismo.haataja@digia.com>
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/StageFailureDialog.java4
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/AllInOnePatchScreen.java43
2 files changed, 41 insertions, 6 deletions
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/StageFailureDialog.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/StageFailureDialog.java
index 36dac03658..f32d6441d9 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/StageFailureDialog.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/StageFailureDialog.java
@@ -15,9 +15,9 @@
package com.google.gerrit.client.changes;
-class StageFailureDialog extends ConflictErrorDialog {
+public class StageFailureDialog extends ConflictErrorDialog {
- StageFailureDialog(String msg) {
+ public StageFailureDialog(String msg) {
super(msg, Util.C.stageFailed());
}
}
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/AllInOnePatchScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/AllInOnePatchScreen.java
index 89d15be764..6c088cb6e9 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/AllInOnePatchScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/AllInOnePatchScreen.java
@@ -23,6 +23,7 @@ import com.google.gerrit.client.changes.ChangeScreen;
import com.google.gerrit.client.changes.PatchTable;
import com.google.gerrit.client.changes.ChangeInfo.ApprovalInfo;
import com.google.gerrit.client.changes.ChangeInfo.LabelInfo;
+import com.google.gerrit.client.changes.StageFailureDialog;
import com.google.gerrit.client.changes.SubmitFailureDialog;
import com.google.gerrit.client.changes.SubmitInfo;
import com.google.gerrit.client.changes.Util;
@@ -234,6 +235,8 @@ public class AllInOnePatchScreen extends AbstractPatchScreen implements
}
}
+ private enum Action { NOOP, SUBMIT, STAGE };
+
private boolean intralineFailure;
private FlowPanel files;
private Panel approvalPanel;
@@ -242,6 +245,7 @@ public class AllInOnePatchScreen extends AbstractPatchScreen implements
private Collection<ValueRadioButton> approvalButtons;
private NpTextArea message;
private Button send;
+ private Button stage;
private Button submit;
private Button cancel;
boolean saveStateOnUnload = false;
@@ -356,8 +360,10 @@ public class AllInOnePatchScreen extends AbstractPatchScreen implements
}
revision = result.getPatchSetInfo().getRevId();
+ stage.setVisible(result.canStage());
submit.setVisible(result.canSubmit());
if (Gerrit.getConfig().testChangeMerge()) {
+ stage.setEnabled(result.getChange().isMergeable());
submit.setEnabled(result.getChange().isMergeable());
}
}
@@ -569,6 +575,10 @@ public class AllInOnePatchScreen extends AbstractPatchScreen implements
send.addClickHandler(this);
buttonRow.add(send);
+ stage = new Button(Util.C.buttonPublishStagingSend());
+ stage.addClickHandler(this);
+ buttonRow.add(stage);
+
submit = new Button(Util.C.buttonPublishSubmitSend());
submit.addClickHandler(this);
buttonRow.add(submit);
@@ -683,16 +693,18 @@ public class AllInOnePatchScreen extends AbstractPatchScreen implements
public void onClick(final ClickEvent event) {
final Widget sender = (Widget) event.getSource();
if (send == sender) {
- onSend(false);
+ onSend(Action.NOOP);
+ } else if (stage == sender) {
+ onSend(Action.STAGE);
} else if (submit == sender) {
- onSend(true);
+ onSend(Action.SUBMIT);
} else if (cancel == sender) {
saveStateOnUnload = false;
goChange();
}
}
- private void onSend(final boolean submit) {
+ private void onSend(final Action action) {
ReviewInput data = ReviewInput.create();
data.message(ChangeApi.emptyToNull(message.getText().trim()));
data.init();
@@ -709,8 +721,10 @@ public class AllInOnePatchScreen extends AbstractPatchScreen implements
.post(data, new GerritCallback<ReviewInput>() {
@Override
public void onSuccess(ReviewInput result) {
- if (submit) {
+ if (action == Action.SUBMIT) {
submit();
+ } else if (action == Action.STAGE) {
+ stage();
} else {
saveStateOnUnload = false;
goChange();
@@ -742,6 +756,26 @@ public class AllInOnePatchScreen extends AbstractPatchScreen implements
}
}
+ private void stage() {
+ ChangeApi.stage(getPatchId().getParentKey().get(), revision,
+ new GerritCallback<SubmitInfo>() {
+ public void onSuccess(SubmitInfo result) {
+ saveStateOnUnload = false;
+ goChange();
+ }
+
+ @Override
+ public void onFailure(Throwable err) {
+ if (StageFailureDialog.isConflict(err)) {
+ new StageFailureDialog(err.getMessage()).center();
+ } else {
+ super.onFailure(err);
+ }
+ goChange();
+ }
+ });
+ }
+
private void submit() {
ChangeApi.submit(getPatchId().getParentKey().get(), revision,
new GerritCallback<SubmitInfo>() {
@@ -797,6 +831,7 @@ public class AllInOnePatchScreen extends AbstractPatchScreen implements
}
message.setEnabled(enabled);
send.setEnabled(enabled);
+ stage.setEnabled(enabled);
submit.setEnabled(enabled);
cancel.setEnabled(enabled);
}