summaryrefslogtreecommitdiffstats
path: root/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java')
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java77
1 files changed, 29 insertions, 48 deletions
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
index bae181c647..8a27fd049a 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
@@ -248,7 +248,7 @@ public class ChangeScreen extends Screen {
void loadChangeInfo(boolean fg, AsyncCallback<ChangeInfo> cb) {
RestApi call = ChangeApi.detail(changeId.get());
ChangeList.addOptions(call, EnumSet.of(
- ListChangesOption.CHANGE_ACTIONS,
+ ListChangesOption.CURRENT_ACTIONS,
ListChangesOption.ALL_REVISIONS));
if (!fg) {
call.background();
@@ -256,18 +256,6 @@ public class ChangeScreen extends Screen {
call.get(cb);
}
- void loadRevisionInfo() {
- RestApi call = ChangeApi.actions(changeId.get(), revision);
- call.background();
- call.get(new GerritCallback<NativeMap<ActionInfo>>() {
- @Override
- public void onSuccess(NativeMap<ActionInfo> actionMap) {
- actionMap.copyKeysIntoChildren("id");
- renderRevisionInfo(changeInfo, actionMap);
- }
- });
- }
-
@Override
protected void onUnload() {
if (replyAction != null) {
@@ -415,8 +403,7 @@ public class ChangeScreen extends Screen {
}
}
- private void initRevisionsAction(ChangeInfo info, String revision,
- NativeMap<ActionInfo> actions) {
+ private void initRevisionsAction(ChangeInfo info, String revision) {
int currentPatchSet;
if (info.current_revision() != null
&& info.revisions().containsKey(info.current_revision())) {
@@ -444,6 +431,11 @@ public class ChangeScreen extends Screen {
RevisionInfo revInfo = info.revision(revision);
if (revInfo.draft()) {
+ NativeMap<ActionInfo> actions = revInfo.has_actions()
+ ? revInfo.actions()
+ : NativeMap.<ActionInfo> create();
+ actions.copyKeysIntoChildren("id");
+
if (actions.containsKey("publish")) {
publish.setVisible(true);
publish.setTitle(actions.get("publish").title());
@@ -814,7 +806,6 @@ public class ChangeScreen extends Screen {
commentLinkProcessor = result.getCommentLinkProcessor();
setTheme(result.getTheme());
renderChangeInfo(info);
- loadRevisionInfo();
}
}));
}
@@ -942,6 +933,7 @@ public class ChangeScreen extends Screen {
private void loadSubmitType(final Change.Status status, final boolean canSubmit) {
if (canSubmit) {
+ actions.setSubmitEnabled();
if (status == Change.Status.NEW) {
statusText.setInnerText(Util.C.readyToSubmit());
}
@@ -1051,7 +1043,19 @@ public class ChangeScreen extends Screen {
private void renderChangeInfo(ChangeInfo info) {
changeInfo = info;
lastDisplayedUpdate = info.updated();
+ RevisionInfo revisionInfo = info.revision(revision);
+ boolean current = info.status().isOpen()
+ && revision.equals(info.current_revision())
+ && !revisionInfo.is_edit();
+ if (revisionInfo.is_edit()) {
+ statusText.setInnerText(Util.C.changeEdit());
+ } else if (!current && info.status() == Change.Status.NEW) {
+ statusText.setInnerText(Util.C.notCurrent());
+ labels.setVisible(false);
+ } else {
+ statusText.setInnerText(Util.toLongString(info.status()));
+ }
labels.set(info);
renderOwner(info);
@@ -1060,6 +1064,7 @@ public class ChangeScreen extends Screen {
initReplyButton(info, revision);
initIncludedInAction(info);
initChangeAction(info);
+ initRevisionsAction(info, revision);
initDownloadAction(info, revision);
initProjectLinks(info);
initBranchLink(info);
@@ -1079,37 +1084,6 @@ public class ChangeScreen extends Screen {
setVisible(hashtagTableRow, false);
}
- StringBuilder sb = new StringBuilder();
- sb.append(Util.M.changeScreenTitleId(info.id_abbreviated()));
- if (info.subject() != null) {
- sb.append(": ");
- sb.append(info.subject());
- }
- setWindowTitle(sb.toString());
-
- // Properly render revision actions initially while waiting for
- // the callback to populate them correctly.
- renderRevisionInfo(changeInfo, NativeMap.<ActionInfo> create());
- }
-
- private void renderRevisionInfo(ChangeInfo info,
- NativeMap<ActionInfo> actionMap) {
- RevisionInfo revisionInfo = info.revision(revision);
- boolean current = info.status().isOpen()
- && revision.equals(info.current_revision())
- && !revisionInfo.is_edit();
-
- if (revisionInfo.is_edit()) {
- statusText.setInnerText(Util.C.changeEdit());
- } else if (!current && info.status() == Change.Status.NEW) {
- statusText.setInnerText(Util.C.notCurrent());
- labels.setVisible(false);
- } else {
- statusText.setInnerText(Util.toLongString(info.status()));
- }
-
- initRevisionsAction(info, revision, actionMap);
-
if (Gerrit.isSignedIn()) {
replyAction = new ReplyAction(info, revision,
style, commentLinkProcessor, reply, quickApprove);
@@ -1131,7 +1105,14 @@ public class ChangeScreen extends Screen {
quickApprove.setVisible(false);
setVisible(strategy, false);
}
- actions.reloadRevisionActions(actionMap);
+
+ StringBuilder sb = new StringBuilder();
+ sb.append(Util.M.changeScreenTitleId(info.id_abbreviated()));
+ if (info.subject() != null) {
+ sb.append(": ");
+ sb.append(info.subject());
+ }
+ setWindowTitle(sb.toString());
}
private void renderOwner(ChangeInfo info) {