You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org> on 2014/12/30 01:51:14 UTC

[jira] [Closed] (TAP5-2402) autocomplete typeahead suggestions appear/disappear with keystrokes

     [ https://issues.apache.org/jira/browse/TAP5-2402?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship closed TAP5-2402.
--------------------------------------
       Resolution: Fixed
    Fix Version/s: 5.4

> autocomplete typeahead suggestions appear/disappear with keystrokes
> -------------------------------------------------------------------
>
>                 Key: TAP5-2402
>                 URL: https://issues.apache.org/jira/browse/TAP5-2402
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.4
>            Reporter: George Christman
>            Assignee: Howard M. Lewis Ship
>             Fix For: 5.4
>
>
> The tapestry autocomplete mixin uses typeahead.js 0.9.3 which seems to have a bug where the suggestions appear/disappear which each key stroke. This seems to have been resolved in the latest version of typeahead.js 0.10.5. I have successfully implemented it locally and resolved the issue. I'm recommending we upgrade the typeahead.js and it's connector to the latest version. 
> https://twitter.github.io/typeahead.js/
> http://twitter.github.io/typeahead.js/releases/latest/typeahead.bundle.min.js
> Below is a working connector. 
> {code}
> define(["t5/core/dom", "t5/core/ajax", "./jquery", "t5/core/utils", "./vendor/typeahead.bundle.min"], function(dom, ajax, $, _arg) {
>     var exports, extendURL, init;
>     extendURL = _arg.extendURL;
>     init = function(spec) {
>         var $field;
>         $field = $(document.getElementById(spec.id));
>         var suggestions = new Bloodhound({
>             datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
>             queryTokenizer: Bloodhound.tokenizers.whitespace,
>             limit: 5,
>             dupDetector: function(remoteMatch, localMatch) {
>                 return remoteMatch.value === localMatch.value;
>             },
>             remote: {
>                 url: spec.url,
>                 replace: function(uri, query) {
>                     return extendURL(uri, {
>                         "t:input": query
>                     });
>                 },
>                 filter: function(response) {
>                     return $.map(response.matches, function(value) {
>                         return {value: value};
>                     });
>                 }
>             }
>         });
>         suggestions.initialize();
>         return $field.typeahead(
>                 {
>                     hint: false,
>                     highlight: true,
>                     minLength: spec.minChars
>                 },
>         {
>             displayKey: 'value',
>             source: suggestions.ttAdapter()
>         }
>         );
>     };
>     return exports = init;
> });
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)