Merge changes I550ae6b0,Ibfbc7f70

* changes:
  Use account suggestion to suggest assignees
  SuggestAfterTypingNCharsOracle: Handle null query to avoid TypeError
This commit is contained in:
ekempin
2016-11-04 10:43:11 +00:00
committed by Gerrit Code Review
4 changed files with 12 additions and 20 deletions

View File

@@ -98,7 +98,6 @@ public class Assignee extends Composite {
this.changeId = info.legacyId();
this.canEdit = info.hasActions() && info.actions().containsKey("assignee");
setAssignee(info.assignee());
assigneeSuggestOracle.setChange(changeId);
editAssigneeIcon.setVisible(canEdit);
if (!canEdit) {
show.setTitle(null);

View File

@@ -14,13 +14,12 @@
package com.google.gerrit.client.change;
import com.google.gerrit.client.change.ReviewerSuggestOracle.RestReviewerSuggestion;
import com.google.gerrit.client.change.ReviewerSuggestOracle.SuggestReviewerInfo;
import com.google.gerrit.client.changes.ChangeApi;
import com.google.gerrit.client.account.AccountApi;
import com.google.gerrit.client.info.AccountInfo;
import com.google.gerrit.client.rpc.GerritCallback;
import com.google.gerrit.client.rpc.Natives;
import com.google.gerrit.client.ui.AccountSuggestOracle.AccountSuggestion;
import com.google.gerrit.client.ui.SuggestAfterTypingNCharsOracle;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gwt.core.client.JsArray;
import java.util.ArrayList;
@@ -29,22 +28,15 @@ import java.util.List;
/** REST API based suggestion Oracle for assignee */
public class AssigneeSuggestOracle extends SuggestAfterTypingNCharsOracle {
private Change.Id changeId;
public void setChange(Change.Id changeId) {
this.changeId = changeId;
}
@Override
protected void _onRequestSuggestions(Request req, Callback cb) {
ChangeApi
.suggestReviewers(changeId.get(), req.getQuery(), req.getLimit(), true)
.get(new GerritCallback<JsArray<SuggestReviewerInfo>>() {
AccountApi.suggest(req.getQuery(), req.getLimit(),
new GerritCallback<JsArray<AccountInfo>>() {
@Override
public void onSuccess(JsArray<SuggestReviewerInfo> result) {
List<RestReviewerSuggestion> r = new ArrayList<>(result.length());
for (SuggestReviewerInfo reviewer : Natives.asList(result)) {
r.add(new RestReviewerSuggestion(reviewer, req.getQuery()));
public void onSuccess(JsArray<AccountInfo> result) {
List<AccountSuggestion> r = new ArrayList<>(result.length());
for (AccountInfo reviewer : Natives.asList(result)) {
r.add(new AccountSuggestion(reviewer, req.getQuery()));
}
cb.onSuggestionsReady(req, new Response(r));
}

View File

@@ -45,7 +45,7 @@ public class AccountSuggestOracle extends SuggestAfterTypingNCharsOracle {
public static class AccountSuggestion implements SuggestOracle.Suggestion {
private final String suggestion;
AccountSuggestion(AccountInfo info, String query) {
public AccountSuggestion(AccountInfo info, String query) {
this.suggestion = format(info, query);
}

View File

@@ -29,7 +29,8 @@ public abstract class SuggestAfterTypingNCharsOracle extends HighlightSuggestOra
@Override
protected void onRequestSuggestions(Request req, Callback cb) {
if (req.getQuery().length() >= Gerrit.info().suggest().from()) {
if (req.getQuery() != null
&& req.getQuery().length() >= Gerrit.info().suggest().from()) {
_onRequestSuggestions(req, cb);
} else {
List<Suggestion> none = Collections.emptyList();