提交 389a3bcf 编写于 作者: D Daniel Beck

Merge pull request #1124 from daniel-beck/fix-autocompletion-for-folders

Fix autocompletion for items in folders
......@@ -91,7 +91,22 @@ public class AutoCompletionCandidates implements HttpResponse {
public static <T extends Item> AutoCompletionCandidates ofJobNames(final Class<T> type, final String value, @CheckForNull Item self, ItemGroup container) {
if (self==container)
container = self.getParent();
return ofJobNames(type, value, container);
}
/**
* Auto-completes possible job names.
*
* @param type
* Limit the auto-completion to the subtype of this type.
* @param value
* The value the user has typed in. Matched as a prefix.
* @param container
* The nearby contextual {@link ItemGroup} to resolve relative job names from.
* @since TODO
*/
public static <T extends Item> AutoCompletionCandidates ofJobNames(final Class<T> type, final String value, ItemGroup container) {
final AutoCompletionCandidates candidates = new AutoCompletionCandidates();
class Visitor extends ItemVisitor {
String prefix;
......
......@@ -28,6 +28,7 @@ import hudson.views.ListViewColumnDescriptor;
import hudson.views.ViewJobFilter;
import jenkins.model.Jenkins;
import org.kohsuke.stapler.QueryParameter;
import org.kohsuke.stapler.AncestorInPath;
import java.util.List;
......@@ -67,10 +68,8 @@ public abstract class ViewDescriptor extends Descriptor<View> {
protected ViewDescriptor() {
}
/**
* Auto-completion for the "copy from" field in the new job page.
*/
public AutoCompletionCandidates doAutoCompleteCopyNewItemFrom(@QueryParameter final String value) {
@Deprecated
public AutoCompletionCandidates doAutoCompleteCopyNewItemFrom(final String prefix) {
final AutoCompletionCandidates r = new AutoCompletionCandidates();
new ItemVisitor() {
......@@ -78,13 +77,13 @@ public abstract class ViewDescriptor extends Descriptor<View> {
public void onItemGroup(ItemGroup<?> group) {
// only dig deep when the path matches what's typed.
// for example, if 'foo/bar' is typed, we want to show 'foo/barcode'
if (value.startsWith(group.getFullName()))
if (prefix.startsWith(group.getFullName()))
super.onItemGroup(group);
}
@Override
public void onItem(Item i) {
if (i.getFullName().startsWith(value)) {
if (i.getFullName().startsWith(prefix)) {
r.add((i.getFullName()));
super.onItem(i);
}
......@@ -94,6 +93,13 @@ public abstract class ViewDescriptor extends Descriptor<View> {
return r;
}
/**
* Auto-completion for the "copy from" field in the new job page.
*/
public AutoCompletionCandidates doAutoCompleteCopyNewItemFrom(@QueryParameter final String value, @AncestorInPath ItemGroup container) {
return AutoCompletionCandidates.ofJobNames(TopLevelItem.class, value, container);
}
/**
* Possible {@link ListViewColumnDescriptor}s that can be used with this view.
*/
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册