GithubHelp home page GithubHelp logo

lifo101 / typeahead-bundle Goto Github PK

View Code? Open in Web Editor NEW
22.0 22.0 12.0 68 KB

A Symfony2 bundle that provides an enhanced Bootstrap v3 Typeahead form type.

License: MIT License

PHP 50.88% JavaScript 37.49% CSS 2.38% HTML 9.25%

typeahead-bundle's People

Contributors

lifo101 avatar mikeyudin avatar t-veron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

typeahead-bundle's Issues

allow simple autocomplete (not only entity oriented)

Hi!
I Just wanted to say thank you for yor bundle first! it is really helpful!

However I found myself stucked with a small issue (not a bug).

The plugin works really well with entity type field but won't work with simple string.
What if I wanted to store a user name without storing the whole user entity?

With a __toString it will be stored but then in my edit form I will get an error saying:
"Expected argument of type "object or array", "string" given"

After investigation, the issue comes from the data transformers strongly coupled with the form Type. Maybe you could inject them via the service container or create a second formType called 'simple_typeahead' which would allow autocomplete based on entities (reverse transformation) but wouldn't try to reload the field based on an object but a string/int.

Another option is just to test if the initial data to transform is an entity in the transformer and if it's not, do nothing.

I'll see if I can contribute and submit you a pull request soon ^^.

Thanks again!

spinner is not showing

Hello, everything is working ok, but spinner is never showing up, I tried to leave it as default or adding my own value like this one:

        ->add('code', 'entity_typeahead', array('required'  => false,
                                                'label'     => Your code',
                                                'class'     => 'AppBundle:TheCode',
                                                'render'    => 'code',
                                                'route'     => 'list_codes',
                                                'callback'  => 'getCodeInfo',
                                                'minLength' => 3,
                                                'spinner'   => "fa fa-spinner"
                                                ))

I'm running in dev mode so I don't think is an assets thing, and the rest of things are properly styled (I have font awesome library also)

Thank you

License

Can you add license file? Is it MIT like braincrafted/bootstrap-bundle?

Error including JS library

Hello, when in PROD mode (strangely it works in DEV mode) I get this error in prod.log:

request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET /js/lifo_typeahead.js" (from "http://example.com/example/new")" at /var/www/html/example/app/cache/prod/classes.php line 2512 {"exception":"[object] (Symfony\Component\HttpKernel\Exception\NotFoundHttpException(code: 0): No route found for "GET /js/lifo_typeahead.js"

I guess it's related to this part of my code, that I copied from README.md without really understanding it:

    <script src="{{asset( '/js/bootstrap.min.js') }}" type="text/javascript"></script>
    {% javascripts filter='?yui_js' output='js/lifo_typeahead.js'
    '@lifo_typeahead_js'
    %}
    <script src="{{ asset_url }}"></script>

As a maybe related issue, I stripped out de yui_css part in next code due to another exception:

    {% stylesheets filter='cssrewrite' output='css/lifo_typeahead.css'
    '@lifo_typeahead_css'
    -%}
    <link href="{{ asset_url }}" type="text/css" rel="stylesheet" />
    {% endstylesheets %}

Default options in config file

Hello,

Instead of setting the default options into TypeaheadType's class, could you create a configuration file please ( for options delay, minLength, items, spinner)?

Variable "url" does not exist.

When using the source option to call a javascript function I get the above error. I declare the field like so

        $builder->add('street', 'entity_typeahead', array(
            'class'  => 'AppBundle:Street',
            'render' => 'name',
            'source' => 'test',
            'minLength' => 1,
            'callback' => 'test2'

        ))

If I simply include the 'route' option it seems to resolve the issue and still calls the JS function but not sure why it would be required. Documentation says just one or the other.

Invalid input name when form name contains underscores

When multiple select is enabled and the form name contains underscores (e.g. my_form_name) selected input elements have the wrong name values.

I have traced the issue to the following code in the js:

var name = id.split(//);
name = (name.length > 1 ? name.shift() + '[' + name.join('][') + ']' : name.join()) + '[]';

Can't add new items with multiple = true

Hello

I'm trying this for a multiple (ManyToMany) relationship.

Existing items appear correctly in the unordered list.
I can delete an item, submit the form and it is deleted correctly.
I can add new items and they appear correctly in the unordered list but ...
When I submit the form, the new items are not posted.

I'm not sure where to begin to help debug but the $array parameter in
EntitiesToPropertyTransformer::reverseTransform does not contain newly added items.

The same code works if I replace the typeahead with a standard entity form component with multiple = true.

Thanks

Instalation failed with Symfony v.2.2.1

After executing:
composer require lifo/typeahead-bundle dev-master

I'm getting following errors:

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested package lifo/typeahead-bundle dev-master dev-master could not be found
.
  Problem 2
    - Installation request for symfony/framework-standard-edition 2.2.x-dev -> satisfiable
 by symfony/framework-standard-edition[2.2.x-dev].
    - symfony/framework-standard-edition 2.2.x-dev requires lifo/typeahead-bundle dev-mast
er dev-master -> no matching package found.

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stabi
lity setting
   see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more de
tails.

Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.


Installation failed, reverting composer.json to its original content.

Any ideas what might went wrong?

Undefined index.

Hey, running into a bit of a snag.

I have the controller setup to return the JSON object, that bit is working.

I have the following code in my form object:

->add('localAccountExecs', 'entity_typeahead', [
    'label'  => 'Local Account Executive(s)',
    'class'  => 'AssociateBundle:Associate',
    'render' => 'name',
    'route'  => 'associate_list',
            ])

My template looks like:

{{ form_row(form.localAccountExecs, {attr: {placeholder: 'Search for an associate...'}}) }}

When loading the form I get the following error:

Notice: Undefined index: 0000000063caf225000000000ef8ef71

Entered data disappear on blur event

Hi,

When we type somethink new to input and go to the next form element (the blur event is fired on the typehead) the entered data disappear.

Variable "loadingIconUrl" does not exist

Hi,

I have tried to use this bundle with symfony2.2, but I have the following error :

Variable "loadingIconUrl" does not exist in /var/www/myproject/vendor/lifo/typeahead-bundle/Lifo/TypeaheadBundle/Resources/views/Form/fields.html.twig at line 9

I have tried to define this property with empty string in fields.html.twig, the error disappears and my action works... but typeahead does'nt work :( . In my browser console I have the following error :

Uncaught TypeError: Cannot read property 'defaults' of undefined

Any idea ?

The bundle seem configured well :/

id null in form

hey,
i integrate your bundle in my project for using it as tag input.
but i get this error
**

"Impossible to access an attribute ("id") on a null variable in LifoTypeaheadBundle:Form:typeahead.html.twig at line 62."

**
i use symfony 2.7, this is my form code:

->add('tags', 'entity_typeahead', array(
                'class'  => 'WF\TagBundle\Entity\Tag',
                'render' => 'name',
                'route'  => 'wf_advert_tags',
                'multiple' => true
            ));

Documentation error.

Hi

Thanks for this. It's exactly what I was looking for and it works great!

A minor error but it caught me for a while as I blindly copied and pasted. The instructions say to add this to composer.json

"lifo/symfony-typeahead-bundle": "dev-master"

but it should be

"lifo/typeahead-bundle": "dev-master"

Callback example

Can you give an example of using callback parameter? I tryed all these and nothing happens when I click an item:

    $builder
        ->add('the_list', 'entity_typeahead', array('label'  => 'A list',
                                                               'class'  => 'AppBundle:TheList',
                                                               'render' => 'name',
                                                               'route'  => 'the_list',
                                                               'mapped' => false,
                                                               'callback' => 'alert(text)'
                                                               ))

Also
'callback' => 'function(text, data) {alert(text);}'

Nothing happens, no error, no action. I can see the attribute data-callback="function(text, data) {alert(text);}" is correctly set.

Also, I can't see the spinner when waiting response, maybe these problems are related

Error when counting the response data from controller

I got the parsing error from javascript source of your code.

my json output was like :
[{"id":1,"value":"test"},{"id":2,"value":"test2"}]

and the success method of $.ajax acts like its string and it parsed all string like an array ( which is count of string )

I guess there were problem in intelligient guess method of jquery but just we can simply add

dataType: "json",

into typeheadjs which under the $.ajax. This will fix the problem.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.