Recargar pagelet vía AJAX

Hola,
Estamos personalizando la operación de carga de notas parciales para que se puedan importar las notas desde un archivo.
Necesitamos saber como refrescar el pagelet de abajo (el que tiene los renglones) cuando se importe el archivo, para que se vean reflejados los cambios.

Saludos!
Flavia

Hola Flavia, en tu caso tendrías que hacer lo siguiente:

donde haces la petición AJAX (src/pers/cordoba/operaciones/notas_parciales/importar/pagelet_importar.js), en vez de usar la función $.ajax(), usa esta función kernel.ajax.load() que es del SIU (internamente usa $.ajax()), a partir de la linea 38 quedaria algo así:

kernel.ajax.load(info.url_importar, '#edicion_notas', {
                            type:'POST',
                            contentType:false,
                            data: datos,
                            dataType: 'JSON',
                            processData: false,
                            cache: false,
                            historia: false,
                            success: function(response) {

                                var tipo_alert = (response.error)? "alert-error" : "alert-success";

                                $( id+' div.alert' ).remove();
                                msg_arriba = $('<div role="alert" class="alert '+tipo_alert+'" style="width: auto; float:left; margin:0;">'+response.mensaje +'<button type="button" class="close" data-dismiss="alert">×</button></div>');
                                $(id).append(msg_arriba);
                                msg_arriba.position({
                                    my: 'top',
                                    at: 'top center',
                                    offset: '0 0',
                                    of: $(id)
                                }).show();

                            }
                        });

esto lo que hace es una petición AJAX y cuando termina la misma coloca el contenido devuelto en el elemento HTML #edicion_notas (actualiza el pagelet de renglones).

También borra la linea 35 que dice kernel.ui.show_loading(); ya que el mensaje de “cargando” ya lo muestra y esconde la función kernel.ajax.load().

luego vas a tener que modificar el siguiente archivo src/siu/www/js/lib/kernel.ajax.js en la linea 54 agrega lo siguiente:

var promise = $.ajax({
				url: url,
				....
                                ....
                                contentType: options.contentType,
                                processData: options.processData,
                                complete: function() {
			        ...
                                ...

arriba de donde dice complete agrega las lineas:

contentType: options.contentType,
processData: options.processData,

luego en el controlador que responde la petición AJAX (src/pers/cordoba/operaciones/notas_parciales/controlador.php linea 321) seria así:

$clase = 'operaciones\notas_parciales\pagelet_edicion_notas';
$pl = kernel::localizador()->instanciar($clase, 'edicion_notas');
$this->vista()->add_pagelet($pl);
kernel::renderer()->add($pl);

proba con eso y cualquier cosa decime.

saludos.