diff options
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.java | 77 |
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) { |