Skip to content

Commit

Permalink
Merge branch 'release/v3.3.24'
Browse files Browse the repository at this point in the history
  • Loading branch information
enfoqueNativo committed Apr 25, 2022
2 parents 7c3161e + 43a6ef3 commit 19d48f2
Show file tree
Hide file tree
Showing 22 changed files with 114 additions and 83 deletions.
8 changes: 8 additions & 0 deletions CHANGELOG.md
Expand Up @@ -4,6 +4,14 @@

[CURRENT](https://github.com/SIU-Toba/framework/compare/master...develop)

[3.3.24](https://github.com/SIU-Toba/framework/releases/tag/v3.3.24) (2022-04-25)
- Fix eliminacion repetida de columnas en `toba_ei_cuadro`
- Fix regresion en objeto JS que maneja la comunicacion con el server
- Fix salida no inicializada en `toba_ef_editable_fecha_hora` (credits @fcastiglione)
- Actualizacion de seguridad de paquetes JS:
* CKEditor4: v4.18.1
- Se eliminan notices en las clases `toba_vista_xx`

[3.3.23](https://github.com/SIU-Toba/framework/releases/tag/v3.3.23) (2022-02-14)
- Fix instanciacion incorrecta del logger al superarse el tiempo de sesión
- Fix notice al lidiar con tareas serializadas
Expand Down
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -44,11 +44,11 @@ toba proyecto cargar -p nombre_proyecto -d `pwd`

La descarga de SIU-Toba a partir de la version 3.0 se lleva a cabo enteramente via composer, para ello se deben agregar al archivo ``composer.json`` de su proyecto las siguientes lineas
```json
"repositories": [
"repositories": [
{
"type": "composer",
"url": "https://satis.siu.edu.ar",
"exclude": ["siu-toba/rest"]
"exclude": ["siu-toba/framework", "siu-toba/rest"]
}
],
"require": {
Expand Down
2 changes: 1 addition & 1 deletion VERSION
@@ -1 +1 @@
3.3.23
3.3.24
2 changes: 1 addition & 1 deletion composer.json
Expand Up @@ -74,7 +74,7 @@
],
"scripts": {
"post-install-cmd": [
"yarn add ckeditor4@4.17 jquery@3.6 jquery-migrate@3.3 siu-js-app-launcher@1.0.6 --modules-folder www/js/packages/",
"yarn add ckeditor4@4.18 jquery@3.6 jquery-migrate@3.3 siu-js-app-launcher@1.0.6 --modules-folder www/js/packages/",
"yarn ",
"php bin/instalar_assets.php"
],
Expand Down
4 changes: 2 additions & 2 deletions package.json
@@ -1,13 +1,13 @@
{
"name": "siu-toba-framework",
"version": "3.3.23",
"version": "3.3.24",
"description": "Framework para desarrollo rápido de aplicaciones web",
"license": "SEE LICENSE IN licencia.txt",
"repository": "https://github.com/SIU-Toba/framework.git",
"author": "enfoqueNativo <rdalinger@siu.edu.ar>",
"private": false,
"dependencies": {
"ckeditor4": "~4.17",
"ckeditor4": "~4.18",
"jquery": "3.6",
"jquery-migrate": "3.3",
"siu-js-app-launcher": "1.0.6"
Expand Down
55 changes: 28 additions & 27 deletions php/nucleo/componentes/interface/efs/toba_ef_editable.php
Expand Up @@ -3,10 +3,10 @@
interface toba_callback_errores_validacion {

/**
* Atrapa la validacion de tamaño maximo de un campo
* Atrapa la validacion de tamaño maximo de un campo
*
* @param toba_ef_editable $ef campo en cuestión
* @param int $maximo Tamaño maximo definido
* @param toba_ef_editable $ef campo en cuestión
* @param int $maximo Tamaño maximo definido
* @param string $estado Estado actual a validado
* @return boolean/String True para descartar el error, o un string para mostrar un mensaje personalizado
*/
Expand Down Expand Up @@ -60,7 +60,7 @@ static function set_callback_errores_validacion(toba_callback_errores_validacion
}

/**
* Permite hacer que todos los efs traduzcan su tamaño visual a pixeles con un porcentaje dado
* Permite hacer que todos los efs traduzcan su tamaño visual a pixeles con un porcentaje dado
* @param int $porcentaja
*/
static function set_tamano_multiplicado_pixels($porcentaje = 1)
Expand All @@ -80,7 +80,7 @@ function __construct($padre,$nombre_formulario,$id,$etiqueta,$descripcion,$dato,
$this->estado_defecto = $parametros['estado_defecto'];
$this->estado = $this->estado_defecto;
}
//Tamaño del editable
//Tamaño del editable
if (isset($parametros['edit_tamano'])) {
$this->tamano = $parametros['edit_tamano'];
}
Expand Down Expand Up @@ -185,13 +185,13 @@ function validar_estado()
if ($this->tiene_estado() && $this->estado != '') {
//Hago el chequeo x expresion regular si existiera
if (isset($this->expreg) && !preg_match($this->expreg, $this->estado)) {
return 'No es válido';
return 'No es válido';
}

//Evaluo si se supera el maximo de caracteres permitido
if (isset($this->maximo) && !is_null($this->maximo) && (strlen($this->estado) > $this->maximo)) {
if (! isset(self::$callback_errores_validacion)) {
return "Supera el ancho máximo {$this->maximo}";
return "Supera el ancho máximo {$this->maximo}";
} else {
return self::$callback_errores_validacion->editable_maximo($this, $this->maximo, $this->estado);
}
Expand Down Expand Up @@ -235,7 +235,7 @@ function crear_objeto_js()
//########################################################################################################

/**
* Elemento editable que sólo permite ingresar números
* Elemento editable que sólo permite ingresar números
* @package Componentes
* @subpackage Efs
* @jsdoc ef_editable_numero ef_editable_numero
Expand Down Expand Up @@ -268,15 +268,15 @@ function __construct($padre,$nombre_formulario, $id,$etiqueta,$descripcion,$dato

/**
* Permite modificar el rango de numeros permitido y el mensaje de error
* @param string $rango ej: "[0..100), Número positivo"
* @param string $rango ej: "[0..100), Número positivo"
*/
function cambiar_rango($rango)
{
//Parseo del rango
$limitadores = array('[', ']', '(', ')');
$partes = explode(',', $rango, 2);

//Determinación de límites
//Determinación de límites
$rango = trim($partes[0]);
list($inferior, $superior) = explode('..', str_replace($limitadores, '', $rango));
$this->rango_inferior['limite'] = trim($inferior);
Expand All @@ -286,7 +286,7 @@ function cambiar_rango($rango)
if (strpos($rango, ')') !== false)
$this->rango_superior['incluido'] = 0;

//Descripción
//Descripción
if (isset($partes[1])) {
$this->mensaje_defecto = $partes[1];
}
Expand Down Expand Up @@ -332,7 +332,7 @@ protected function validar_rango()
}

/**
* Valida que el número cumpla con el rango preestablecido (si lo hay)
* Valida que el número cumpla con el rango preestablecido (si lo hay)
*/
function validar_estado()
{
Expand All @@ -345,7 +345,7 @@ function validar_estado()
return true;
}
if (! is_numeric($this->estado)) {
return "El campo es numérico";
return "El campo es numérico";
}
return $this->validar_rango();
}
Expand Down Expand Up @@ -397,7 +397,7 @@ function crear_objeto_js()
//########################################################################################################

/**
* Elemento editable que sólo permite ingresar números que representan un valor monetario
* Elemento editable que sólo permite ingresar números que representan un valor monetario
* @package Componentes
* @subpackage Efs
* @jsdoc ef_editable_moneda ef_editable_moneda
Expand Down Expand Up @@ -443,7 +443,7 @@ function get_descripcion_estado($tipo_salida)
//########################################################################################################

/**
* Elemento editable que sólo permite ingresar números que representan un porcentaje
* Elemento editable que sólo permite ingresar números que representan un porcentaje
* @package Componentes
* @subpackage Efs
* @jsdoc ef_editable_porcentaje ef_editable_porcentaje
Expand Down Expand Up @@ -499,7 +499,7 @@ function get_descripcion_estado($tipo_salida)
//########################################################################################################

/**
* Elemento editable que permite ingresar contraseñas, con o sin campo de confirmación
* Elemento editable que permite ingresar contraseñas, con o sin campo de confirmación
* @package Componentes
* @subpackage Efs
* @jsdoc ef_editable_clave ef_editable_clave
Expand Down Expand Up @@ -623,7 +623,7 @@ function normalizar_parametro_cascada($parametro)
}

/**
* Valida que las fechas ingresadas estén dentro del rango de fechas
* Valida que las fechas ingresadas estén dentro del rango de fechas
*
* @param string $desde aaaa-mm-dd
* @param string $hasta aaaa-mm-dd
Expand Down Expand Up @@ -662,7 +662,7 @@ function get_input()
}

/**
* Valida que sea una fecha válida con la funcion php checkdate
* Valida que sea una fecha válida con la funcion php checkdate
*/
function validar_estado()
{
Expand All @@ -685,7 +685,7 @@ function validar_estado()
return "El campo no es una fecha valida (1).";
}
if (isset($this->rango_fechas)) {
//TODO: Falta validación en el servidor
//TODO: Falta validación en el servidor
}
}
return true;
Expand Down Expand Up @@ -837,7 +837,7 @@ function get_input()
}

/**
* Valida que sea una fecha válida con la funcion php checkdate
* Valida que sea una fecha válida con la funcion php checkdate
*/
function validar_estado()
{
Expand All @@ -860,7 +860,7 @@ function validar_estado()
return "El campo no es una fecha valida (1).";
}
if (isset($this->rango_fechas)) {
//TODO: Falta validación en el servidor
//TODO: Falta validación en el servidor
}

$hora = explode(':', $this->estado['hora']);
Expand Down Expand Up @@ -898,19 +898,20 @@ function get_descripcion_estado($tipo_salida)
{
$formato = new toba_formateo($tipo_salida);
$estado = $this->get_estado();
$desc = (! is_null($estado)) ? $formato->formato_fecha($estado[0]) . " $estado[1] " : '';
switch ($tipo_salida) {
case 'html':
case 'impresion_html':
$desc = (! is_null($estado)) ? $formato->formato_fecha($estado[0]) . " $estado[1] " : '';
case 'impresion_html':
$desc = "<div class='{$this->clase_css}'>$desc</div>";
break;
case 'excel':
$desc = $formato->formato_fecha_hora("{$estado[0]} {$estado[1]}");
break;
case 'xml':
case 'pdf':
break; //Retorna la descripcion actual
case 'xml' :
case 'pdf' :
break;
}

return $desc;
}
}
Expand Down Expand Up @@ -985,7 +986,7 @@ function set_estado($estado)
}

/**
* Valida que sea una fecha válida con la funcion php checkdate
* Valida que sea una fecha válida con la funcion php checkdate
*/
function validar_estado()
{
Expand Down
8 changes: 5 additions & 3 deletions php/nucleo/componentes/interface/toba_ei_cuadro.php
Expand Up @@ -296,9 +296,11 @@ protected function procesar_definicion_columnas()
function eliminar_columnas($columnas)
{
foreach($columnas as $clave) {
$id = $this->_info_cuadro_columna_indices[$clave];
array_splice($this->_info_cuadro_columna, $id, 1);
$this->procesar_definicion_columnas(); //Se re ejecuta por eliminación para actualizar $this->_info_cuadro_columna_indices
if (isset($this->_info_cuadro_columna_indices[$clave])) {
$id = $this->_info_cuadro_columna_indices[$clave];
array_splice($this->_info_cuadro_columna, $id, 1);
$this->procesar_definicion_columnas(); //Se re ejecuta por eliminación para actualizar $this->_info_cuadro_columna_indices
}
}
}

Expand Down
22 changes: 12 additions & 10 deletions php/nucleo/lib/salidas/toba_impr_html.php
Expand Up @@ -23,23 +23,25 @@ function generar_salida()
{
header('Content-Type: text/html; charset=iso-8859-1', true);
$this->generar_html_encabezado();
foreach( $this->objetos as $objeto ) {
$objeto->vista_impresion( $this );
}
if (isset($this->objetos) && is_countable($this->objetos)) {
foreach( $this->objetos as $objeto ) {
$objeto->vista_impresion($this);
}
}
$this->generar_html_pie();
}

protected function generar_html_encabezado()
{
echo "<html><head>";
$estilo = toba::proyecto()->get_parametro('estilo');
echo toba_recurso::link_css("toba_impr", 'screen');
echo toba_recurso::link_css("toba_impr", 'print');
echo "<style type='text/css' media='print'>
.barra-impresion {
display: none;
}
</style>\n";
echo toba_recurso::link_css("toba_impr", 'screen');
echo toba_recurso::link_css("toba_impr", 'print');
echo "<style type='text/css' media='print'>
.barra-impresion {
display: none;
}
</style>\n";
toba_js::cargar_consumos_basicos();
echo "</head><body>\n";
echo "<div class='barra-impresion'>";
Expand Down
9 changes: 6 additions & 3 deletions php/nucleo/lib/salidas/toba_vista_araireportes.php
Expand Up @@ -22,6 +22,7 @@ class toba_vista_araireportes
protected $formato_datos = 'xml';

private $lista_jrprint = array();
protected $objetos = array();
protected $url;

protected $uri;
Expand Down Expand Up @@ -220,9 +221,11 @@ public function set_json($json)
*/
public function generar_salida()
{
foreach ($this->objetos as $objeto) {
if (method_exists($objeto, 'vista_araireportes')) {
$objeto->vista_araireportes($this);
if (isset($this->objetos) && is_countable($this->objetos)) {
foreach ($this->objetos as $objeto) {
if (method_exists($objeto, 'vista_araireportes')) {
$objeto->vista_araireportes($this);
}
}
}
$this->crear_recursos_temporales();
Expand Down
10 changes: 6 additions & 4 deletions php/nucleo/lib/salidas/toba_vista_excel.php
Expand Up @@ -18,7 +18,7 @@ class toba_vista_excel
*/
protected $excel;
protected $objetos = array();
protected $tipo_salida = 'application/vnd.ms-excel';
protected $tipo_salida = 'application/vnd.ms-excel';
protected $nombre_archivo = 'salida.xlsx';
protected $tipo_descarga = 'attachment';
protected $writer = 'Xlsx';
Expand Down Expand Up @@ -87,9 +87,11 @@ function set_tipo_descarga( $tipo )
*/
function generar_salida()
{
foreach( $this->objetos as $objeto ) {
$objeto->vista_excel( $this );
}
if (isset($this->objetos) && is_countable($this->objetos)) {
foreach( $this->objetos as $objeto ) {
$objeto->vista_excel( $this );
}
}
$this->crear_excel();
}

Expand Down
13 changes: 8 additions & 5 deletions php/nucleo/lib/salidas/toba_vista_jasperreports.php
Expand Up @@ -25,6 +25,7 @@ class toba_vista_jasperreports
protected $limpiar_modo_archivo = false;

private $lista_jrprint = array();
protected $objetos = array();

function __construct()
{
Expand Down Expand Up @@ -266,11 +267,13 @@ function set_archivo_xml($ruta_xml, $xpath_data_search = null)
*/
function generar_salida()
{
foreach( $this->objetos as $objeto ) {
if(method_exists($objeto, 'vista_jasperreports')) {
$objeto->vista_jasperreports($this);
}
}
if (isset($this->objetos) && is_countable($this->objetos)) {
foreach( $this->objetos as $objeto ) {
if(method_exists($objeto, 'vista_jasperreports')) {
$objeto->vista_jasperreports($this);
}
}
}

//Uno los distintos metareportes (jrprint) en un solo archivo para enviar el pdf.
if (! $this->hay_metareportes()) {
Expand Down

0 comments on commit 19d48f2

Please sign in to comment.