Move 'Publish/Rebase/Delete Edit' buttons into header
If a change has a change edit the natural next step is to
publish/rebase (or delete) it, hence these buttons should be displayed
in a more prominent place.
Change-Id: If02482ad8e5b564b4fbf1ce4a01fe7afd6e12ea2
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Actions.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Actions.java
index 9b7d9ba..1a7e852 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Actions.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Actions.java
@@ -19,7 +19,6 @@
import com.google.gerrit.client.actions.ActionInfo;
import com.google.gerrit.client.changes.ChangeInfo;
import com.google.gerrit.client.changes.ChangeInfo.CommitInfo;
-import com.google.gerrit.client.changes.ChangeInfo.EditInfo;
import com.google.gerrit.client.changes.ChangeInfo.RevisionInfo;
import com.google.gerrit.client.rpc.NativeMap;
import com.google.gerrit.reviewdb.client.Change;
@@ -48,9 +47,6 @@
@UiField Button cherrypick;
@UiField Button deleteChange;
@UiField Button deleteRevision;
- @UiField Button deleteEdit;
- @UiField Button publishEdit;
- @UiField Button rebaseEdit;
@UiField Button publish;
@UiField Button rebase;
@UiField Button revert;
@@ -96,7 +92,6 @@
initChangeActions(info, hasUser);
initRevisionActions(info, revInfo, hasUser);
- initEditActions(info, info.edit(), hasUser);
}
private void initChangeActions(ChangeInfo info, boolean hasUser) {
@@ -117,26 +112,6 @@
}
}
- private void initEditActions(ChangeInfo info, EditInfo editInfo,
- boolean hasUser) {
- if (!info.has_edit() || !info.current_revision().equals(editInfo.name())) {
- return;
- }
- NativeMap<ActionInfo> actions = editInfo.has_actions()
- ? editInfo.actions()
- : NativeMap.<ActionInfo> create();
- actions.copyKeysIntoChildren("id");
-
- if (hasUser) {
- a2b(actions, "/", deleteEdit);
- a2b(actions, "publish", publishEdit);
- a2b(actions, "rebase", rebaseEdit);
- for (String id : filterNonCore(actions)) {
- add(new ActionButton(info, editInfo, actions.get(id)));
- }
- }
- }
-
private void initRevisionActions(ChangeInfo info, RevisionInfo revInfo,
boolean hasUser) {
NativeMap<ActionInfo> actions = revInfo.has_actions()
@@ -207,23 +182,6 @@
DraftActions.publish(changeId, revision);
}
- @UiHandler("deleteEdit")
- void onDeleteEdit(@SuppressWarnings("unused") ClickEvent e) {
- if (Window.confirm(Resources.C.deleteChangeEdit())) {
- EditActions.deleteEdit(changeId);
- }
- }
-
- @UiHandler("publishEdit")
- void onPublishEdit(@SuppressWarnings("unused") ClickEvent e) {
- EditActions.publishEdit(changeId);
- }
-
- @UiHandler("rebaseEdit")
- void onRebaseEdit(@SuppressWarnings("unused") ClickEvent e) {
- EditActions.rebaseEdit(changeId);
- }
-
@UiHandler("deleteRevision")
void onDeleteRevision(@SuppressWarnings("unused") ClickEvent e) {
if (Window.confirm(Resources.C.deleteDraftRevision())) {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Actions.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Actions.ui.xml
index 3d9cd0f..c1e584d 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Actions.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Actions.ui.xml
@@ -78,15 +78,6 @@
<g:Button ui:field='publish' styleName='' visible='false'>
<div><ui:msg>Publish</ui:msg></div>
</g:Button>
- <g:Button ui:field='deleteEdit' styleName='' visible='false'>
- <div><ui:msg>Delete Edit</ui:msg></div>
- </g:Button>
- <g:Button ui:field='publishEdit' styleName='' visible='false'>
- <div><ui:msg>Publish Edit</ui:msg></div>
- </g:Button>
- <g:Button ui:field='rebaseEdit' styleName='' visible='false'>
- <div><ui:msg>Rebase Edit</ui:msg></div>
- </g:Button>
<g:Button ui:field='abandon' styleName='' visible='false'>
<div><ui:msg>Abandon</ui:msg></div>
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen2.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen2.java
index d3b0762..ac642ea 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen2.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen2.java
@@ -77,6 +77,7 @@
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.EventListener;
+import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.Button;
@@ -179,6 +180,9 @@
@UiField Element patchSetsText;
@UiField Button download;
@UiField Button reply;
+ @UiField Button publishEdit;
+ @UiField Button rebaseEdit;
+ @UiField Button deleteEdit;
@UiField Button openAll;
@UiField Button editMode;
@UiField Button reviewMode;
@@ -457,6 +461,26 @@
addFile.setVisible(false);
reviewMode.setVisible(false);
}
+
+ if (rev.is_edit()) {
+ NativeMap<ActionInfo> actions = info.edit().has_actions()
+ ? info.edit().actions()
+ : NativeMap.<ActionInfo> create();
+ actions.copyKeysIntoChildren("id");
+
+ if (actions.containsKey("publish")) {
+ publishEdit.setVisible(true);
+ publishEdit.setTitle(actions.get("publish").title());
+ }
+ if (actions.containsKey("rebase")) {
+ rebaseEdit.setVisible(true);
+ rebaseEdit.setTitle(actions.get("rebase").title());
+ }
+ if (actions.containsKey("/")) {
+ deleteEdit.setVisible(true);
+ deleteEdit.setTitle(actions.get("/").title());
+ }
+ }
}
}
@@ -492,6 +516,23 @@
}
}
+ @UiHandler("publishEdit")
+ void onPublishEdit(@SuppressWarnings("unused") ClickEvent e) {
+ EditActions.publishEdit(changeId);
+ }
+
+ @UiHandler("rebaseEdit")
+ void onRebaseEdit(@SuppressWarnings("unused") ClickEvent e) {
+ EditActions.rebaseEdit(changeId);
+ }
+
+ @UiHandler("deleteEdit")
+ void onDeleteEdit(@SuppressWarnings("unused") ClickEvent e) {
+ if (Window.confirm(Resources.C.deleteChangeEdit())) {
+ EditActions.deleteEdit(changeId);
+ }
+ }
+
@Override
public void registerKeys() {
super.registerKeys();
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen2.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen2.ui.xml
index 8399f34..9c180cc 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen2.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen2.ui.xml
@@ -364,6 +364,15 @@
title='Apply score with one click'>
<ui:attribute name='title'/>
</c:QuickApprove>
+ <g:Button ui:field='publishEdit' styleName='' visible='false'>
+ <div><ui:msg>Publish Edit</ui:msg></div>
+ </g:Button>
+ <g:Button ui:field='rebaseEdit' styleName='' visible='false'>
+ <div><ui:msg>Rebase Edit</ui:msg></div>
+ </g:Button>
+ <g:Button ui:field='deleteEdit' styleName='' visible='false'>
+ <div><ui:msg>Delete Edit</ui:msg></div>
+ </g:Button>
</div>
</div>