Commit 0220c98356cbc4e91d3dc521f77d1ef2daa8d584

Authored by Wilmer Ramones
1 parent a29a7bc219
Exists in master

añadido el ajax para añadir tutor y de una vez poder seleccionarlo desde la list…

…a de los tutores a la hora de solicitar ascenso
app/Resources/views/cea/ascenso_mostar.html.twig
@@ -61,8 +61,9 @@ @@ -61,8 +61,9 @@
61 </table> 61 </table>
62 62
63 <p ><strong>Escalafón Solicita:</strong> {{ ascenso.idEscalafones.nombre }} </p> 63 <p ><strong>Escalafón Solicita:</strong> {{ ascenso.idEscalafones.nombre }} </p>
64 - {% for tutor in ascenso.tutoresAscenso %} 64 +
65 <h4>Tutores propuestos</h4> 65 <h4>Tutores propuestos</h4>
  66 + {% for tutor in ascenso.tutoresAscenso %}
66 <p class="well"> 67 <p class="well">
67 <strong>{{ tutor.nombres }} {{ tutor.apellidos }}:</strong> 68 <strong>{{ tutor.nombres }} {{ tutor.apellidos }}:</strong>
68 {{ tutor.institucion }} -> {{ tutor.idEscala.nombre }} 69 {{ tutor.institucion }} -> {{ tutor.idEscala.nombre }}
app/Resources/views/solicitudes/ascenso.html.twig
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
2 2
3 {% block stylesheets %} 3 {% block stylesheets %}
4 {{ parent() }} 4 {{ parent() }}
  5 + <link rel="stylesheet" href="{{ asset('assets/vendor/chosen/chosen.min.css') }}">
5 6
6 <style> 7 <style>
7 .esc_oposicion, .esc_asistente, .esc_agregado, .esc_asociado, .esc_titular{ 8 .esc_oposicion, .esc_asistente, .esc_agregado, .esc_asociado, .esc_titular{
@@ -134,6 +135,7 @@ @@ -134,6 +135,7 @@
134 135
135 {% block javascripts %} 136 {% block javascripts %}
136 {{ parent() }} 137 {{ parent() }}
  138 + <script type="text/javascript" src="{{ asset('assets/vendor/chosen/chosen.jquery.min.js') }}"></script>
137 <script type="text/javascript"> 139 <script type="text/javascript">
138 $('#ascenso_tipoTrabajoInvestigacion').click(function() { 140 $('#ascenso_tipoTrabajoInvestigacion').click(function() {
139 141
@@ -143,7 +145,7 @@ @@ -143,7 +145,7 @@
143 145
144 146
145 $(".tutorForm").submit(function(e){ 147 $(".tutorForm").submit(function(e){
146 - alert("funciona"); 148 +
147 e.preventDefault(); 149 e.preventDefault();
148 150
149 var formSerialize = $(this).serialize(); 151 var formSerialize = $(this).serialize();
@@ -151,13 +153,23 @@ @@ -151,13 +153,23 @@
151 $.ajax({ 153 $.ajax({
152 method: "POST", 154 method: "POST",
153 url: "{{ url('ajax_registrar_tutor') }}", 155 url: "{{ url('ajax_registrar_tutor') }}",
154 - data: formSerialize 156 + data: formSerialize,
  157 +
155 }) 158 })
156 .done(function (data) { 159 .done(function (data) {
157 - if (typeof data.message !== 'undefined') {  
158 - alert(data.message); 160 + if (typeof data.response !== 'undefined') {
  161 + alert(data.response);
  162 + console.log(data.posts);
  163 + var posts = JSON.parse(data.posts);
  164 + $("#ascenso_tutores_ascenso").find('optgroup[label="UBV"]').append($('<option>', {
  165 + value: posts.id,
  166 + text: posts.nombres + " " + posts.apellidos
  167 + }));
  168 + $("#ascenso_tutores_ascenso").trigger("chosen:updated");
  169 +
159 } 170 }
160 }) 171 })
  172 +
161 .fail(function (jqXHR, textStatus, errorThrown) { 173 .fail(function (jqXHR, textStatus, errorThrown) {
162 if (typeof jqXHR.responseJSON !== 'undefined') { 174 if (typeof jqXHR.responseJSON !== 'undefined') {
163 if (jqXHR.responseJSON.hasOwnProperty('form')) { 175 if (jqXHR.responseJSON.hasOwnProperty('form')) {
@@ -209,6 +221,8 @@ @@ -209,6 +221,8 @@
209 221
210 }); 222 });
211 }); 223 });
  224 +
  225 + $("#ascenso_tutores_ascenso").chosen({no_results_text: "<a data-toggle='modal' data-target='#buscarTutores' href='#'>Tutor no registrado, click aquí para registrar!</a>"});
212 226
213 </script> 227 </script>
214 {% endblock %} 228 {% endblock %}
src/AppBundle/Controller/AjaxController.php
@@ -73,6 +73,41 @@ class AjaxController extends Controller { @@ -73,6 +73,41 @@ class AjaxController extends Controller {
73 } 73 }
74 74
75 75
  76 +
  77 + /**
  78 + * @Route("/ajax/buscar_tutor_select", name="ajax_buscar_tutor_select")
  79 + * @Method({"GET"})
  80 + */
  81 + public function buscarTutorSelectAction(Request $request){
  82 + //if($request->isXmlHttpRequest()){
  83 + $encoders = array(new JsonEncoder());
  84 + $normalizers = array(new ObjectNormalizer());
  85 +
  86 + $serializer = new Serializer($normalizers, $encoders);
  87 +
  88 + $term = filter_input(INPUT_GET, 'term', FILTER_SANITIZE_SPECIAL_CHARS);
  89 + $repository = $this->getDoctrine()
  90 + ->getRepository('AppBundle:TutoresAscenso');
  91 + $query = $repository->createQueryBuilder('p')
  92 + ->where('p.nombres LIKE :term')
  93 + ->orWhere('p.apellidos LIKE :term')
  94 + ->setParameter('term', '%'.$term.'%')
  95 + ->getQuery();
  96 +
  97 + $posts = $query->getResult();
  98 +
  99 +
  100 + $response = new JsonResponse();
  101 + $response->setStatusCode(200);
  102 + $response->setData(array(
  103 + 'items' => $serializer->serialize($posts, 'json')
  104 + ));
  105 + return $response;
  106 + //}
  107 +
  108 + }
  109 +
  110 +
76 /** 111 /**
77 * @Route("/ajax/buscar_tutor", name="ajax_buscar_tutor") 112 * @Route("/ajax/buscar_tutor", name="ajax_buscar_tutor")
78 * @Method({"GET"}) 113 * @Method({"GET"})
@@ -127,9 +162,15 @@ class AjaxController extends Controller { @@ -127,9 +162,15 @@ class AjaxController extends Controller {
127 $em->persist($nuevoTutor); 162 $em->persist($nuevoTutor);
128 $em->flush(); 163 $em->flush();
129 164
130 - return new JsonResponse(array('message' => 'Success!'), 200); 165 + $response = new JsonResponse();
  166 + $response->setStatusCode(200);
  167 + $response->setData(array(
  168 + 'response' => 'success',
  169 + 'posts' => $serializer->serialize($nuevoTutor, 'json')
  170 + ));
  171 + return $response;
131 } 172 }
132 - echo $form; 173 +
133 174
134 175
135 $response = new JsonResponse( 176 $response = new JsonResponse(
src/AppBundle/Form/AscensoType.php
@@ -111,22 +111,14 @@ class AscensoType extends AbstractType @@ -111,22 +111,14 @@ class AscensoType extends AbstractType
111 111
112 ->add('tutores_ascenso', EntityType::class, array( 112 ->add('tutores_ascenso', EntityType::class, array(
113 'placeholder' => 'Añadir Tutores...', 113 'placeholder' => 'Añadir Tutores...',
114 - 'class' => 'AppBundle:TutoresAscenso',  
115 - 'label' => false, 114 + 'class' => 'AppBundle:TutoresAscenso',
116 'multiple' => true, 115 'multiple' => true,
  116 + 'group_by' => 'institucion',
117 /*'attr' => array( 117 /*'attr' => array(
118 'disabled' => 'true', 118 'disabled' => 'true',
119 )*/ 119 )*/
120 )) 120 ))
121 -  
122 - ->add('añadir_tutor', ButtonType::class, array(  
123 - 'label' => 'Añadir Tutor',  
124 - 'attr' => array(  
125 - 'class' => 'btn btn-success btn-sm',  
126 - 'data-toggle' => "modal",  
127 - 'data-target' => "#buscarTutores"  
128 - )  
129 - )) 121 +
130 122
131 123
132 ->add('investigacion', FileType::class, array( 124 ->add('investigacion', FileType::class, array(