Провайдер значений для строки запроса
Вы можете добавить автокомплит для своего поля, если оно использует нестандартный тип. Создайте класс, реализующий ru.slie.luna.issue.query.value.ClauseValueProvider.
java
package ru.slie.luna.issue.query.value.impl;
import org.springframework.stereotype.Component;
import ru.slie.luna.agile.sprint.Sprint;
import ru.slie.luna.agile.sprint.SprintManager;
import ru.slie.luna.agile.sprint.SprintSearchParams;
import ru.slie.luna.issue.field.IssueField;
import ru.slie.luna.issue.query.value.ClauseValue;
import ru.slie.luna.issue.query.value.ClauseValueProvider;
import ru.slie.luna.issue.query.value.ClauseValueType;
import ru.slie.luna.user.User;
import java.util.Arrays;
import java.util.List;
@Component
public class SprintValueProvider implements ClauseValueProvider {
private final SprintManager sprintManager;
public SprintValueProvider(SprintManager sprintManager) {
this.sprintManager = sprintManager;
}
@Override
public ClauseValueType getValueType() {
return ClauseValueType.of(Sprint.class);
}
@Override
public List<ClauseValue> getValues(User user, IssueField field, String valuePrefix, int limit, List<String> excludes) {
SprintSearchParams searchParams = SprintSearchParams.forPage(1, limit, excludes);
searchParams.setState(Arrays.asList(Sprint.State.NEW.getState(), Sprint.State.ACTIVE.getState()));
List<Sprint> sprints = sprintManager.suggestions(searchParams);
return sprints.stream().map(p -> new ClauseValue(p.getName(), p.getDisplayName())).toList();
}
}Обновите дескриптор плагина
yaml
clauseValueProviders:
- key: SprintValueProvider
name: Spring value provider
className: ru.slie.luna.issue.query.value.impl.ClauseValueProvider