culabs / jquery-bundle
Easy integration of jquery into symfony2
Installs: 169
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 1
Forks: 1
Open Issues: 0
Type:symfony-bundle
This package is not auto-updated.
Last update: 2022-02-01 12:21:51 UTC
README
CULabsjQueryBundle ================== AutocompleteDoctrineType ------------------------ Este widget permite utilizar el widget "autocomplete" de jQuery. Para poner un ejemplo supongamos que tenemos una entidad con el nombre "AcmeDemoBundle:User" y tiene una relación de "uno a mucho" con una entidad "AcmeDemoBundle:Tienda". En la clase "TiendaType" adicionamos el siguiente campo al "builder" $builder->add('gestor', 'jquery_doctrine_autocomplete', array( 'url' => 'autocomplete_user', 'class' => 'AcmeDemoBundle:User', )); El campo "url" es el que contiene el nombre de la ruta a utilizar en el autocompletamiento. El siguiente paso es crear la ruta "autocomplete_user". El bundle contiene una controladora genérica para el trabajo con cualquier entidad. Si lo crees necesario puedes utilizar una controladora própia o extender esta. autocomplete_user: pattern: /autocomplete_user defaults: _controller: CULabsjQueryBundle:AutocompleteDoctrine:index class: CULabsMainBundle:User method_for_query: autocomplete El campo "method_for_query" es utilizado para indicar que método de la clase repositorio será utilizado para hacer la consulta. En el siguiente fragmento de código se ve un ejemplo. class UserRepository extends EntityRepository { public function autocomplete(array $param) { $qb = $this->createQueryBuilder('user'); return $qb->where($qb->expr()->like($qb->expr()->concat('user.name', $qb->expr()->concat('\' \'', 'user.lastname')), $qb->expr()->literal(sprintf('%%%s%%', $param['term'])))) ->setMaxResults($param['limit']) ->getQuery() ->execute() ; } } AutocompleteType ---------------- Este Widget permite el autocompletamiento dado un conjunto de datos definidos. Para usarlo solo hay que adicionar el siguiente código en el método "buildForm" de un formulario. $builder->add('usuario', 'jquery_autocomplete', array( 'choices' => array( 'admin' => 'Administrador', 'user1' => 'Usuario1', 'user2' => 'Usuario2' ) )); DatepickerType -------------- Permite la creación de datepicker $builder->add('fecha', 'jquery_datepicker') DatetimepickerType ------------------ Permite la creación de datepicker, usando el plugin "http://trentrichardson.com/examples/timepicker/" $builder->add('fecha', 'jquery_datetimepicker') jq_remote_form -------------- Esta función de twig permite enviar a través de ajax un formulario, que puede también contener ficheros. Utiliza el plugin de jQuery "http://malsup.com/jquery/form/". El uso básico es el siguiente. <form id="formulario" action="#" method="post"> {{ form_widget(form) }} <input type="submit" value="Enviar"/> <span id="indicador" style="display: none">Registrando...</span> </form> {{ jq_remote_form('formulario', { 'update': 'zona_update', 'url': path('la_ruta_a_utilizar'), 'complete': "jQuery('#indicador').hide();", 'loading': "jQuery('#indicador').show();", }) }} <div id="zona_update"></div> SliderType ---------- Incluido el Widget slider. $builder->add('numero', 'jquery_slider') Tabs Widget ----------- A través del uso de "etiquetas" de twig se puede crear un componente "Tab" de jQuery. Acontinuación tres ejeplos. {# Tabs simple con tres pestañas #} {% jqtabs %} {% jqtabitem title 'One'|trans %} <p>{{ 'One'|trans }}</p> {% endjqtabitem %} {% jqtabitem title 'two'|trans %} <p>{{ 'Two'|trans }}</p> {% endjqtabitem %} {% jqtabitem title 'Three'|trans %} <p>{{ 'Three'|trans }}</p> {% endjqtabitem %} {% endjqtabs %} {# Ejemplo de paso de valores para la configuracion y manipulación del objeto con javascript #} {% jqtabs config { 'event': '"mouseover"' } js_name 'my_tab' %} {% for i in 1..5 %} {% jqtabitem title 'title ' ~ i %} <p>{{ i }}</p> {% endjqtabitem %} {% endfor %} {% jqtabitem title 'Last'|trans %} <p>{{ 'Last'|trans }}</p> {% endjqtabitem %} {% endjqtabs %} <script type="text/javascript"> my_tab.bind("tabsadd", function (event, ui) { $( ui.panel ).append( "<p>body</p>" ); }); my_tab.tabs( "add", "#tabs-q", 'title' ); </script> {# Ejemplo de Tabs anidados #} {% jqtabs %} {% jqtabitem title 'One'|trans %} <p>{{ 'One'|trans }}</p> {% endjqtabitem %} {% jqtabitem title 'two'|trans %} <p>{{ 'Two'|trans }}</p> {% endjqtabitem %} {% jqtabitem title 'Three'|trans %} {% jqtabs %} {% for i in 1..5 %} {% jqtabitem title 'title ' ~ i %} <p>{{ i }}</p> {% endjqtabitem %} {% endfor %} {% endjqtabs %} {% endjqtabitem %} {% endjqtabs %} Dialog Widget ------------- A través del uso de "etiquetas" de twig se puede crear un componente "Dialog" de jQuery. Acontinuación tres ejeplos. {# Ejemplo simple #} {% jqdialog config {'title':'"Demo"'} %} <p>Text in the body</p> {% endjqdialog %} {# Paso de más parámetros de configuración y creación de un botón. #} <script type="text/javascript"> function my_function() { $( this ).dialog( "close" ); } </script> {% jqdialog config { 'title':'"Demo"', 'modal':'true', 'buttons':'{Ok:my_function}' } js_name 'my_dialog' %} <p>Text in the body</p> {% endjqdialog %}