Menús de la aplicación

El menú principal de la aplicación se muestra pulsando el botón de la zona superior izquierda, y aparece como una serie de pestañas de primer nivel con subpestañas dentro. Las de niveles inferiores contienen campos para parametrizar la BD, usar herramientas, configurar la lista de certificaciones, ámbitos de precios, informes, administrar mis proyectos...

Menú CLASES

No accesible para usuarios de perfil inferior a expertos (perfil g1, el defecto del cliente en los proyectos.

Es una página de árbol jerárquico con el índice de clases de los registros o conceptos disponibles.

Sólo los administradores de la BD (grupo admin) en edición pueden gestionar la creación, modificación y eliminación de clases. El resto de usuarios (incluidos expertos del grupo 1) pueden ver la información del nº de campos de cada una (NC), el nº de conceptos o documentos (ND), el criterio de orden por defecto (Orden), etc.

Haciendo clic en el icono de una, se muestra la página de la clase, lo que sirve para ver toda la lista de conceptos (de esa clase y/o de todas sus subclases) y realizar una búsqueda general, con la posibilidad de filtrar por casi todos los campos de la clase.

El campo Estilo es importante porque define la representación de icono cuando aparecen conceptos en cualquier lista de datos, y también la representación geográfica en cualquier mapa (bloque so formas con colores para elementos puntuales, líneas abiertas y líneas cerradas para superficies). Esta es una visión global de los estilos de todas las capas. Se puede ver el detalle de definición en las páginas de definición de clases.

La información gráfica (Gra) (que comprende cualquier tipo de archivo externo asociado) y de mapas (Map) que muestra cada clase, es este campo es un núm. decimal, que al convertir a sistema binario, se convierte en las opciones seleccionadas en la página de clase, cuyas opciones son: opciones de mapas: Actual, Hijos, Nietos, Padres y Contenido. Por ejemplo:
- Si tenemos mapas=3 (el valor de defecto)  que en binario es 11, empezando por la izquierda, será que están seleccionados 'Actual' e 'Hijos'.
- El valor decimal 8, que en binario es '1000', si lo invertimos, de izquierda a derecha será sólo la opción 'Padres'.

Administradores

Para dar de alta una clase:

  • pulsar el modo Edición de la base, si no lo está
  • seleccionar cualquier campo de la línea inferior a la que queremos insertar
  • pulsar las teclas CONTROL + INSERT para añadir una línea en blanco
  • teclear en columna Código uno válido. Los identificadores (Id) de clases tienen que comenzar con punto (.), pero en esta columna se teclean y rotulan sin el punto.

Poniendo en el campo Superior el código de otra clase, definimos la que hemos creado como subclase de aquella, con lo que se agrupará dentro de ella, aunque además podemos subir o bajar la posición de la línea dentro de la lista de subclases que tenga esa, seleccionando un campo cualquiera de la línea y pulsando CTRL + flecha arriba o CTRL + flecha abajo. Esta posición es sólo para ordenación visual, no tiene otro uso.

El campo Singular (Resumen en singular), permite especificar un nombre cunado la reducción automática que hace Ingrid desde el plural no nos convence. En ese caso se usaría este personalizado. Cuando se está en modo No edición, se muestra el rótulo completo en singular juntos los automáticos y los manuales, para poder revisarlos.

Menú BÚSQUEDAS

Anexo sintaxis de búsqueda mongoDb y reducida

Persiana disponible para usuarios de perfil administrador y expertos (perfil g1)

Los botones del primer bloque Ayudas a la búsqueda, están predefinidas y permiten realizar de forma muy rápida algunas de las más habituales.

En Texto a buscar, se facilita buscarlo dentro de todos los documentos de BD, al pulsar uno de los botones inferiores, buscando así, dentro del contenido del _id, resumen, descomposiciones, imágenes...

 

Debajo hay una herramienta avanzada, Búsqueda, que admite una sentencia de búsqueda find() completa de MongoDB, o una búsqueda reducida de Ingra.

Algunos ejemplos de uso sencillo de estas búsquedas reducidas son:
· campo=valor (por ejemplo, cla=car) separados por espacios en blanco para unir varias condiciones como AND
· También se admite el símbolo de doble igualdad (como cla==tar) para indicar que es "una clase o algunas de sus subclases".
· Preguntar por la existencia de un campo con información se hace con la sintaxis <campo>!! y la negación de existencia <campo>!
· Los términos sueltos entre espacios en blanco se buscan en el índice de texto si la base está indizada
· Si contiene un punto, se busca en el identificador (campo _id) como una máscara inexacta incluyendo el no distinguir mayúsculas/minúsc. Por ejemplo, 'Bu.01' busca identificadores que contengan 'bu' en la clase y '01' en cualquier parte del código, o '.preven' busca ese texto en el código de cualquier clase.

Cada búsqueda que se teclea, queda en el historial del navegador actual (hasta que se limpie la memoria), de forma que con el desplegable podemos recuperar y modificar búsquedas anteriores.

Con una selección de conceptos, se pueden utilizar los 4 botones de edición inferiores para realizar operaciones masivas contra la BD (del orden de cientos de miles de registros tratados instantáneamente o en segundos).

ATENCIÓN: los botones actúan sobre toda la lista de conceptos buscados, no sobre los visibles ni los seleccionados en las casillas de la columna del menú contextual.

 

Hay 4 botones con estas acciones:

1. Elimina documentos, todos los seleccionados en la búsqueda.

2. Cambia valor campo masivamente mediante expresiones regulares (por ejemplo poniendo res=d.res+" "+i, modificará los resúmenes de todos los documentos buscados, poniendo el resumen de cada documento (d) y el número de orden de la línea (i) en base cero. Se puede utilizar el botón Prueba del diálogo para ver el resultado de los cambios se harían, sin llegar a ejecutarlos.

ATENCIÓN a que tratándose de expresiones JS, las cadenas de caracteres es necesario ponerlas entre comillas y los números no; es decir, para asignar un resumen indicar res="Tarea correctiva 1123"

ATENCIÓN, otra particularidad es que al cambiar campos de campos de tipo objeto, por ejemplo, si en un documento tenemos:

{
"_id":"binequ.P1.A01.A",
"cla":"binequ",
"cod":"P1.A01.A",
"res":"08-046",
"lecs":{"20150630":9.2,"20150701":10.92}
}

y queremos eliminar de muchos conceptos el dato de la fecha 20150630, no debemos hacerlo poniendo lecs[20150630]=null sino lecs.20150630=null. Ingrid ya envuelve los campos que ponemos en el diálogo para que sea "lecs.20150630"=null.

MUY IMPORTANTE: También sirve para recodificar conceptos cambiando el campo _id (con lo que cambiarán automáticamente los campos cla y cod). Esta es la operación más compleja y pesada de cambiar porque mongoDB no permite cambiar identificadores, sino que hay que hacer por cada cambio una copia completa de todo el concepto y todas sus referencias y eliminar el antiguo. Además hay que buscar todas las referencias que apuntaban a ese _id y cambiarlas también.

El administrador que hace un cambio de este tipo NO RECOMENDADO, debe:
A. ser muy consciente de lo que cambia.
B. chequear las referencias entre conceptos desde Menú > Base > General > Chequea Base y también Cuenta referencias, por si algún procedimiento javasscript anterior de manipulación o importación de datos las ha dejado mal calculadas, lo que supondría errores al cambiar identificadores.  
C. hacer una copia de seguridad de la base antes del cambio de identificadores.
D. tras un cambio en campos de tipo referencia, calcular referencias, ya que estos cambios actúan directamente sobre la BD sin las funciones de interface.

 

Hay otra herramienta, la calculadora de campos, para modificar varias líneas multi-seleccionadas a la vez: editando en la celda de una de ellas, cambiar el valor, poniendo el prefijo =. en este caso la modificación se aplicará a todos los campos de todos los conceptos seleccionados. La expresión puede ser un número, cadena de caracteres e incluso una expresión javascript, por ejemplo: =10+45+Math.sin(245) incluso con varias líneas separadas con ; permitiendo definición de funciones, etc.

 

Los siguientes sólo en BBDD mongodb alojadas como servicio en nuestros servidores, no para BBDD locales en el navegador:

3. Cambia código campo, cambiándolo en todos los documentos que hagan referencia a él.

4. Recodifica conceptos, para completarlos con ceros por la izquierda y hacerlos uniformes en tamaño, Sólo para códigos completamente numéricos, no con prefijos o sufijos alfanuméricos.

Al realizar una búsqueda, se muestra sobre la lista de resultados, en una pista, la sintaxis del find() que se hace contra la base MongoDB. Esto nos sirve para ver algún problema con lo que creemos que estamos buscando o para copiar la sentencia y modificarla.

En la lista de resultados, la flecha Búsqueda actual a ventana principal, permite llevar esta búsqueda a la lista de ventana que tiene las funciones de menú contextual, nos permite mostrar las georreferencias de las mismas, etc.

Menú CONFIGURACIÓN

Características

Permite definir restricciones globales de interface en CADA BD de proyecto, para mostrar u ocultar información en función del tipo de base o del uso que le demos.

Restricciones Tiene 3 selectores booleanos (verdadero/falso o bien sí/no):

  • Sin imágenes oculta las persianas de Imágenes que se mostrarían en todos los conceptos los archivos externos que tenga asociados o si está vacía, asociar nuevos archivos. Si no hacemos uso de esta característica, es más cómodo ocultar esa persiana en todas las páginas de BD. Utiliza la variable CONGRA.
  • Sin mapas, de igual forma, oculta todas las persianas de Georreferencias, si no usamos información geográfica o de mapas. Utiliza la variable CONMAP.
  • Sin referencias permite ocultar la persiana que muestra las relaciones inversas, es decir, en cada concepto, la lista de otros conceptos de BD que tienen algún campo apuntando al actual. Utiliza la variable CONREF.

IMPORTANTE. Cada clase define desde cualquier concepto de esa clase, si muestra las persianas vacías de Imágenes, información geográfica y referencias (cuando la persiana esté vacía, ya que si contienen información, se muestran siempre): esas opciones sólo aparecen en el menú contextual de la página o ficha si la clase lo permite. El marcarlas en este menú de configuración sólo indica si queremos que las opciones PUEDAN salir en el menú contextual.

Servicios opcionales

  • Con ámbitos activa el que los usuarios puedan definir conjuntos de información que compartir con otros usuarios de esa misma base o que sea completamente disjunta. Compartimenta la información de forma jerárquica. NO CONFUNDIR con los ámbitos de precios de una Base de precios de la Construcción, que asigna un precio distinto a cada concepto por cada ámbito (por ejemplo provincias).
  • Con fechas permite grabar en todos los conceptos creados y modificados, la fecha y HH:MM:SS exactos de creación y de modificación, cada vez que se modifique algún dato.
  • Con traza Permite activar la auditoría con log de todo tipo de modificaciones de una base. Activable sólo por el administrador. El servidor guarda en tiempo real, en un archivo log mensual, dentro de un directorio \log del proyecto en el que se active, el registro de fecha-HMS y usuario de todos los comandos de modificación que se lanzan desde el cliente, sean masivos como la calculadora de campos, o individuales como la modificación del calor de un sólo campo. Además se guarda la lista docl de documentos modificados, idl de identificadores eliminados o creados, o el campo modificado en un documento, en caso de ser uno, e incluso el valor modificado. Los procesos propios del servidor no se guardan.

Botones opcionales

Muestra en todas las páginas de la aplicación, botones que permiten atajos a herramientas o acceso a herramientas específicas:

- Busca código QR, muestra cerca del botón de Edición, el botón . Pulsándolo, se puede utilizar el lector de códigos de barras siempre que se disponga de una cámara, ya sea en PC o en dispositivos móviles, para tomar un código de concepto e ir a su página si utilizamos inventario etiquetado con códigos de barras EAN o QR. Como indica la pista, se puede poner una clase concreta para acotar la búsqueda y añadírsela como prefijo al código leído o poner un punto para buscar en todas.

Limitaciones de versión 0.20.0 del 19/4/2023:
· Soporta formatos 1D: UPC-A y E, EAN-8 y 13, industrial Code-39, 93 y 128, ITF y otros menores
· Soporta formatos 2D: QR, Data matrix, Aztec, PDF-417 
· En dispositivos Apple con iOS < 14.3 (dic-2020), la cámara solo es accesible desde navegador Safari

- Busca cercano por GPS, muestra cerca del botón de Edición, el botón . Pulsándolo, en dispositivos móviles se toma la ubicación actual en dispositivos con GPS, y abre la página del concepto de inventario más cercano.

- DE usuarios, muestra en la primera página (carpeta concepto raíz) el botón Usuarios para administradores, que les permite un acceso rápido al primer usuario definido en cada grupo de permisos para hacer pruebas.

 

Preferencias

Presenta sin clase, sólo rotula los identificadores en los campos de edición, en el resto de sitios impresos oculta la clase. Podemos usarlo cuando los iconos son suficientemente representativos.

Clase de usuarios IMPORTANTE. Permite especificar una clase (como por ejemplo Personas o Entidades), que tiene que tener definido de forma particular un campo pwd y pwd0 , de contraseña, equivalentes a los de usuario, y se tendrá en cuenta su código como si fuesen conceptos de clase .usu. Esto tiene la utilidad de crear usuarios masivos, por ejemplo, varios centenares de clientes para los que ya tenemos ficha y que tendríamos que crear esos mismos centenares también como usuarios para que pudiesen acceder a BD.

Para darle a esos usuarios 'virtuales' los permisos adecuados, tiene que existir un usuario con el mismo código que la clase usada.

Procedimientos, son herramientas que sólo usa el administrador para chequear y reparar, o recrear alguna estructura de BD si se muestra algún comportamiento anómalo; tenemos:

· Chequea bases de datos, comprueba integridad de clases, crea, elimina y modifica los campos de clases que hayan cambiado con respecto a la versión actual de Ingrid. Si se pulsa manteniendo la tecla CONTROL pulsada, también cuenta documentos de todas las clases.

· Comprueba referencias,

· Cuenta referencias, comprueba en todos los conceptos el campos indizado de uso interno refl, que mantiene los identificadores a todos los conceptos relacionados en listas, campos, imágenes..., es decir el mapa de referencias entre conceptos. Se cuentan las referencias en el campo refn, y graba el docn en  todos menos en clases y búsquedas, que sería muy lento en algunas bases. Pulsando el botón con CONTROL, se crean los conceptos referenciados inexistentes y con MAYÚSCULAS; se eliminan las referencias no existentes.

· Chequea georreferencias, comprueba todas envolventes y datos de coordenadas en todos los conceptos con georref.

· Recrea índices, sirve en el caso de se haya corrompido alguno en el motor de BBDD mongoDb. No es nada habitual usarlo.

 

Algunas herramientas y consejos para ADMINISTRADORES en el chequeo de BD:

· Si al entrar en un proyecto se muestra le error 'esta BD no es de Ingrid' es porque ha perdido un usuario imprescindible que lo identifica, llamado 'ingrid', para distinguir cualquier BD mongodb Ingrid de otras. para corregir este error (que puede producirse por ima importación incorrecta o no deseada, un error de manipulación de datos a bajo nivel en el motor o con un script de Ingrid, o por otros motivos, el super-administrador del cluster puede desmontar la base desde las herramientas de ingrid-usos y volver a montarla desde una copia de seguridad.

Procedimientos

Permite configurar parámetros generales para formato de informes, que se guardan en cada BD de proyecto.

Formato de página y Tema de color, establecen los valores por defecto si algún informe utiliza estos controles globales, aunque algunos informes definen estos dos parámetros en cada informe en vez de de forma corporativa en esta pestaña.

El primer conjunto de parámetros define la orientación de página, márgenes, posición del nº de página y tamaño de fuente principal (en función de la cual los títulos y pies están proporcionados). También la cabecera a colocar a la derecha (Fecha actual, código del informe...)

El segundo conjunto permite seleccionar una escala de Color de relleno para el fondo de las líneas -pulsando el icono-, que se aplicará a los títulos de nivel 1,2,3,4. También se puede utilizar un Estilo para poner sombreado a filas alternas en las listas de datos (Cebra), o jugar con la distribución de líneas horizontales y verticales.

Para personalizar con nuestro logotipo los informes (campos Logo izquierdo, Logo central y Logo derecho), basta con subir a nuestro proyecto la imagen deseada, en cualquier formato gráfico soportado por el navegador (se recomienda .png con fondo transparente, o bien .jpg), asociándola a un concepto cualquiera (normalmente a una entidad que representa nuestra empresa) y luego hacer referencia a ella desde uno de los campos. Se mostrarán los logos en los informes que usen cabecera estándar.

Cualquier informe, por supuesto, se puede programar sin cabecera o cualquier otra personalizada. Estos parámetros sólo definen el uso de la cabecera estándar cuando no se define ninguna.

Imágenes

Solo accesible a usuarios de perfil administrador y en Modo administrador.

En los campos de clase Imágenes, bajo la persiana Presentación, se muestra otra de datos de configuración comunes a todos los archivos externos de la base:

Al insertar un gráfico (bien con el botón del panel gráfico de cualquier concepto, o bien arrastrándolo sobre el panel gráfico), si el archivo es una imagen y supera la Dimensión máxima de alta, se copia la imagen en el directorio \original de la BD, y se crea una versión en el directorio \alta con el límite impuesto (limita ancho o alto en pixeles). Sino, el original insertado tiene un tamaño razonable para trabajar con él y es el que se copia en el directorio \alta.

Además al insertar una imagen en BD siempre se genera una versión en el directorio \media y otra en \baja (diapositiva) con los tamaños impuestos en los otros campos: Media Resolución y Baja resolución. Si no se especifican tamaños, los valores de defecto son 256 y 86 pixeles, respectivamente.

 

Además se puede establecer un límite de Tamaño máximo de archivos en MB para cualquier tipo de archivo (esta limitación también se aplica a los arrastrados a concepto Directorio), y concretamente otro Tamaño máximo imágenes JPG, que se aplica sólo a este tipo de fotos.

Recodifica imágenes, permite recodificar las imágenes que se arrastren sobre el control de imágenes. No entrarán en la BD con el nombre de archivo con el que se arrastran sino el del concepto al que se asocian y un nº secuencial con los dígitos que pongamos. Ejemplo: arrastrando factura.jpg sobre el concepto fac.20190115_002, con 3 dígitos, se asociará con el nombre gra.fac.20190115_002.001.jpg

Una última opción, indica si en el panel de Imágenes se Presenta inicialmente la imagen de media de la primera imagen, sin tener que seleccionar la diapositiva.

Mapas

Solo accesible a usuarios de perfil administrador y en Modo administrador.

Incluye variables globales a toda la base para la configuración del uso de espacios en el mapa, como el EPSG o sistema de referencia que se aplica a todas las georreferencias de la BD. El campo Huso indica el de referencia cuando trabajamos con UTM (CSR ED50). IMPORTANTE que en el uso habitual con referencias WGS84 o ETRS89 el huso quede en blanco o la referencia se hará mal.

Aquí están los CRS habituales:

ETRS89 / UTM zone 29N [ projected ] [ EPSG:25829 ]
ETRS89 / UTM zone 30N [ projected ] [ EPSG:25830 ]
ETRS89 / UTM zone 31N [ projected ] [ EPSG:25831 ]
ETRS89 [ geographic 2D ] [ EPSG:4258 ]
EED50 / UTM zone 29N [ projected ] [ EPSG:23029 ]
ED50 / UTM zone 30N [ projected ] [ EPSG:23030 ]
ED50 / UTM zone 31N [ projected ] [ EPSG:23031 ]
ED50 [ geographic 2D ] [ EPSG:4230 ] Antiguo European Datum de 1950, ya obsoleto
WGS 84 / UTM zone 29N [ projected ] [ EPSG:32629 ]
WGS 84 / UTM zone 30N [ projected ] [ EPSG:32630 ]
WGS 84 / UTM zone 31N [ projected ] [ EPSG:32631 ]
WGS 84 [ geographic 2D ] [ EPSG:4326 ] Sistema Mundial para dispositivos GPS

 

Como resumen de información de sistemas de referencia y Datum:

- ETRS89 es el sistema de referencia geodésico oficial de España, precisiones mucho más elevadas que WGS84
- WGS84 es en el que funcionan los satélites GPS
- ED50 S&P, antiguo, sistema oficial y en el que están la mayor parte de los mapas antiguos de España

Diferencia entre ETRS89 y WGS84 en coordenadas geográficas: 0.1mm

Diferencia entre ETRS89 y ED50 S&P y en UTM 30 entre 220m y 240m según la zona de España

Dentro de la zona UTM30, las diferencias son menores a 1mm. Fuera de la zona 30 (zonas 29 y 31), las diferencias no llegan a los 10cm

En los polos y el ecuador no hay ninguna diferencia entre WGS84 y ETRS89

Para buscar la zona UTM adecuada, tenemos esta tabla:
zonas UTM

Y en la página Códigos EPSG de Sistemas de Referencia de la web de la Junta de Andalucía, tenemos la relación detallada de los más utilizados en España.

Los campos Zum mínimo y Zum máximo por defecto, permiten que las coberturas de mapas no muestren errores al intentar profundizar demasiado o que se muestra la primera vista demasiado "lejos".

Filtro para búsqueda por GPS, permite definir una búsqueda de conceptos sobre los que buscar geográficamente el más cercano cuando se pulsa el botón de "Busca cercano", sino se buscará innecesariamente por todos los conceptos de BD,

Clave de Google Maps y Clave de Microsoft Bing, admiten sendas clases, si se está registrado en esos servicios y se ha pagado, para poder utilizar en la navegación de mapas. Cuando se accede al servicio sin ellas, la cobertura de fondo no funciona o bien se muestra recortada como "versión sin clave". A fecha de may-2023 las de Bing aún son sin coste para desarrolladores.

El Sufijo búsqueda de direcciones especifica el ámbito del campo Búsqueda que hay en la barra de herramientas de la Persiana Georreferencias, donde podemos poner la dirección de una calle, que se buscará mediante un o de los servicios disponibles con el sufijo que se ponga aquí, por ejemplo "Madrid, España".

Tamaño de volcado html en px, especifica en puntos el ancho de ventana que se va a utilizar (por defecto el 100%) para algunos informes de mapas

Índice de texto

Permite que se haga un índice de BD en el motor mongoDb para búsquedas en lenguaje natural. Al especificar un conjunto de campos en Campos a indizar y peso, aparece en la esquina superior derecha de las páginas un control para introducir las palabras a buscar.

La herramienta de indización admite una lista de campos procedentes del conjunto de todas las clases de la BD.

Se aplica a los textos recopilados las siguientes reglas:
- Se monta el campo de texto para buscar y el índice de texto completo con los campos resumen, texto (res, tex), y todos los resúmenes de todos los campos de tipo referencia (se encuentran en el campo interno refl).
- Da un peso a cada campo de BD para todos los conceptos (config. por administradores en el campo de Base > Base > Índice de texto), con una definición como:
{"res":10,"tex":3,"otrden":1,"dirsit":1}
divide el valor obtenido de multiplicar el nº de términos coincidentes por su peso, entre el nº de términos en cada campo.
- Ignora diacríticos ("stop-words" de cada lenguaje como preposiciones, conjunciones...) e ignora diferencia entre mayúsculas/minúsculas
- No filtra clases, salen todas
- Muestra los 20 primeros resultados de la búsqueda (configurable en aplicación).
- La implementación de índices de texto de la versión 5 de mongoDB, soporta 15 idiomas.

Este índice de texto es el único de los índices gestionados por el motor sobre los que el administrador puede actuar (remontarlo, borrarlo...). Los demás índices de cualquier base son: por el campo _id que es imprescindible, por cla, cod, refl._id (los identificadores de las referencias del campo refl en cada documento mongoDb), el índice geográfico de cada recuadro envolvente de cada entidad geográfica: georec.x1,y1,x2,y2, y las fechas fecpro y feccer de la  clase tareas.

Encriptación

Permite al administrador definir una clave de encriptación para codificar de forma estándar de alta seguridad AES-256, los campos textuales que desee en la BD, teniendo en cuenta además que la clave se introduce en el cliente, nunca se envía al servidor y no la conoce más que el cliente. ATENCIÓN esto tiene el peligro de que si se olvida la clave, es IMPOSIBLE acceder a los datos encriptados. El resto de la base no encriptada no se vería afectada.

Hay que tener en cuenta varias restricciones en el uso:

 · SÓLO se pueden encriptar campos de tipo cadena (textos sencillos o multilínea, referencias a conceptos y clasificaciones, etc.) pero no de tipo entero (por ejemplo, fechas) real, u otros.  Cualquier campo encriptado se almacena como string, lo que daría problemas al desencriptar.

· Cada BD sólo se puede usar con una clave de encriptación que no se puede cambiar: sino unos datos estarían encriptados con una clave y los siguientes con otra. Cualquier operación de modificación o eliminación de clave pasa por copiar los datos (una vez legibles) a otros campos sin encriptar y luego renombrarlos como originalmente.

· Los campos que ya tienen datos no pueden pasar a Encriptados porque unos estarían sin encriptar y otros no, se debe definir desde el principio.

· No se puede quitar la clave de encriptación de una BD.

Una vez activada, en la zona superior derecha aparece el botón , si lo pulsamos, se solicita la clave y si se introduce correctamente, permite visualizar los datos protegidos. En caso de no introducir la clave, se puede acceder a toda la base, pero no visualizar los datos (ni siquiera a bajo nivel, directamente recuperando la información del motor mongoDb).

El botón, aparece en color azul hasta que se introduce la contraseña adecuada; entonces pasa a color naranja, mostrando los datos encriptados y haciendo que se encripten todos los introducidos en campos que el administrador haya definido con el modificador E (encriptado).

Preferencias

Permite establecer para el navegador actual (Chrome, Firefox, Edge...) y en la máquina actual, preferencias de visualización: tamaño de fuentes, eliminar o aumentar márgenes y separaciones, etc.

Los primeros selectores de modo, alternan entre unos predefinidos para reducir márgenes y quitar logotipos en formatos de pantalla pequeños.

Aplicar sombreado a fila alternas, muestras todas las listas con fondo sombreado alterno de estilo 'pijama'.

Ficha con títulos estrechos, reduce en todas las fichas el porcentaje de pantalla para los nombres que aparecen a la izquierda de los campos.

También se puede elegir la Lengua en la que se muestran los rótulos de la aplicación y textos de los informes. Los administradores de un cliente pueden solicitar el archivo de lengua que quieran usar para completarlo o corregirlo, si así lo desean, pero los utilizados por la aplicación se encuentran en el servidor. Los archivos de lengua traducen casi todas las cadenas de texto de la aplicación (siempre puede haber sin traducir algunos de los más recientes), los campos y parámetros de informes y búsquedas de la BD comun, así como sus rótulos de texto en los propios scripts que utilicen la función L ( ).

Super-administradores: pulsando el conmutador Admin, junto al de Edición, si se es un usuario administrador del cluster, se tienen opciones de depuración y funciones para trazar el cliente, el servidor, limpiar o ver la memoria de un cliente y otros. El conmutador Trazar ... pone al pie de las ventanas cálculos que ayudan a justificar las mediciones, precios, costes... vuelca estados de la memoria,  traza comunicaciones, Activa geolocalización y traslado forzado....

Menú PROCEDIMIENTOS COMUNES

Da acceso a la lista de herramientas programadas en javascript y búsquedas que se incluyen con la aplicación y que están almacenadas en una base comun (llamada ingrid-comun): informes de activos, mantenimiento, importaciones/exportaciones, análisis, geográficos, presupuestos, mediciones, certificaciones, control de obra... y otros más especializados de facturación, administración de nuestros proyectos...

Todas estas herramientas, organizadas en varios apartados y con varios niveles, son accesibles en modo sólo lectura.

Los administradores también pueden poner en cualquier base de proyecto, una referencia a cualquiera de los informes comunes simplemente tecleando el código del informe acabado en '.comun'. Con esto se enlaza y podemos ejecutarlo como si fuese un informe de nuestra base, donde más nos convenga, sólo que no podemos modificarlo en absoluto. Además, si se actualizara el procedimiento en la base comun (el nombre o su funcionalidad, parámetros, etc.), también cambiaría en nuestro proyecto, ya que sólo es un enlace o acceso directo.

En las listas de conceptos no se muestra el nombre de estos procedimientos enlazados.

La navegación por la estructura es casi como por las carpetas y conceptos de BD: con clic en la línea entramos en cada apartado o bien abrimos el procedimiento/búsqueda, sólo que el clic derecho nos saca del menú y vuelve a la posición donde estábamos en la BD. Para navegar hacia arriba por la estructura, tenemos en camino en la parte superior.

Los iconos en color rojo indican que se producen modificaciones masivas en la BD o en archivos externos asociados, y hay que usarlos con más precaución.

Se dispone de un índice Catálogo de informes que detalla información de los más interesantes.

Menú AVANZADO (sólo admin en modo admin)

Este menú y sub-menús, solo se muestran a usuarios de perfil administrador y estando en Modo administrador (conmutador Admin pulsado).

Menú Campos y eventos

Se compone de 3 persianas que se comportan para el concepto raíz general de BD (clase ficticia que es la base de todas las demás clases), de la misma forma que en la página ficha de cualquier clase (Carpetas, Recursos, Unidades de obra... ) cuando el administrador está en modo admin.

Tenemos:

Campos,  la definición de los que van a heredar sus subclases (en este caso, TODOS los conceptos de BD)

Eventos, que se ejecutarán en cada concepto de esa clase

Código JSON, almacenado como un documento de la BD mongoDb. No es recomendable manipular este código directamente en el motor de BD, aunque sea posible, si no se es un experto en el uso de Ingrid.

Menú Clases comunes

Esta persiana muestra contenido de la BD administrativa interna comun, que se encuentra en el mismo motor de BD (en el servidor se puede especificar usar otro motor) y contiene una plantilla con las clases disponibles para diversos tipos de proyectos. Para trasladar una clase que necesitemos a la BD actual sólo hay que marcarla en la columna del menú contextual (la primera). Al entrar en el árbol de clases se ven marcadas las utilizadas en la BD actual. Toda la funcionalidad de las clases (campos especiales, eventos, comportamiento de las persianas de imágenes, mapas...) se traslada junto al icono, nombre y demás datos de la clase.

Para quitar una clase de nuestra base, no basta con desmarcar la casilla, tenemos que eliminarla en la pestaña Menú > Proyecto > Clases.

Menú Bases y usuarios

Sólo el administrador del motor de BD mongoDB (super-usuario del slcuster) tiene acceso a esta persiana, que permite gestionar el conjunto de BD del motor: copiar, renombrar, eliminar, importar y exportar, crear nuevas... todo desde un panel centralizado. También muestra los usuarios conectados a cada una.

La base ingrid-usos guarda estadísticas de conexiones y uso de las bases y tiene procedimientos para hacer un reporte de tiempo y nº de conexiones por BD en cualquier periodo.

La copia de seguridad automática (normalmente cada 2h) del servidor Ingrid nodejs se basa en los datos almacenados en la base de usos. Los procesos que controla el servidor son:

* Proceso conexión a BD:
- en todas las máquinas que no sean CRONOS, las bases con maquina=* (tests y demos) no crean registros de conexiones, y por tanto tampoco de bases.
- al cerrar la conexión websockets (al estar inactiva la página 15 minutos, cerrar pestaña del navegador, cambiar de base en la misma, cerrar navegador...) se graba en BD ingrid-usos una conexión con:
  · base (registro que también se crea si no existía ya en ingrid-usos), el nº de datos modificados y visitados, máquina y si está en json y/o bson
  · se graba maquina.fecgraba con la fecha-hora de desconexión.
  · se leen de la memoria antes de cerrar, el nº de documentos, docs por clase (no se recalculan en toda la BD) y se guardan en la base de la conexión.


* Proceso backup automático cada 2h (por defecto):
- se graba en cada base.* la fecha-hora de backup (base.feccopia)
- se borra la fecha de última modificación de la base base.fecgraba
- se comprueba en bases.json si base.maquina está correcta.
- sólo en máquina CRONOS, las bases con maquina=* hacen copia de seguridad, en cluster de producción, no. Por tanto en ingrid-usos de cluster producción no se graba para demos y tests el campo base.feccopia


* Proceso abre y monta base cuando maquina=* EXCEPTO EN MÁQUINA CRONOS:
- al abrir base se compara la fecha de modificación del bson (en ingrid-nueva con json) con cab.fecmonta (concepto .). Si bson <= fecmonta, se recarga bson


* Proceso arrancar servidor:
- se desmontan las bases montadas en máquinas distintas a la que esté indicada en el mama bases.json  drop ingrid-usos de las máquinas en las no esté montada
- chequear copia de seguridad


* proceso documentar observaciones de interface BBDD
- se graban en base.obs de ingrid-usos y el cliente cada vez que entra en la persiana, lee todos los de todas las bases. También se pueden editar en la columna observaciones del interface de esta ventana. Además, se copian como documentación en bases.json del cluster, pero no se pueden editar allí.
 

Los filtros de los botones de la zona superior derecha de la lista, permiten mostrar sólo las bases montadas en mongoDb o todas y también mostrar sólo las bases de la máquina DE LA BD QUE TENEMOS ACTUALMENTE ABIERTA (es decir, servidor de BBDD al que estamos conectados) o todas las bases de todas las máquinas del cluster.

Las funciones que se pueden llevar a cabo desde el menú contextual de la lista de bases, en muchas de ellas (por ejemplo exportar, importar, eliminar...) admiten multi-selección de bases:

Creación de BD

La opción de menú contextual nueva base, permite crear en el motor actual una nueva como copia del archivo JSON de la BD plantilla ingrid-nueva. El nombre de BD debe ser totalmente en minúsculas, ya que no se distinguen mayúsculas de minúsculas, y habría problemas las coincidencias. Los caracteres admitidos para un nombre son las minúsculas, números y signos que no sean /\."$*<>:|? ni el espacio en blanco.

Importación / exportación

Utilizan las funciones mongodump y mongorestore del motor mongoDB (tanto en formato json como bson), aplicándolas a la BD de la línea seleccionada. Con una multiselección de bases sólo se puede realizar la exportación. En las columnas a la derecha del todo (M, B, J) el icono informa de si se tiene la base montada en el motor (B), y si en el directorio de proyecto existe archivo JSON (J) o BSON (B).

Si se necesita una importación/exportación más precisa e inteligente (por ejemplo de un json procedente de una BD Ingrid v7), se utilizan los procedimientos de ingrid-comun: Base > Procedimientos comunes > Procedimientos de clases.