Clases. Persianas comunes a todas

ejemplos Base de ejemplo: test-campos

Persiana <nombre de clase> (sólo administradores)

Es de color NARANJA y permite a los usuarios de grupo ADMINISTRADORES (grupo 'admin'), crear una definición y definir las características y funcionalidad de la clase. El administrador puede acceder y editar en conjunto desde el árbol completo de clases, en vez de entrando en la página de cada una.

Persiana Campos

Para especificar la lista ordenada de campos de la clase, con sus tipos, pista de ayuda, etc. Puede ver un ejemplo de todos los tipos de campos y su uso en la base de ejemplo indicada al inicio (test-campos). Hay sub-persianas para definir los campos de la clase actual y de las superiores de las que herede campos.

Los iconos de la columna Info indican si tiene información en los campos refl (referencias), gral (imágenes), geol (mapas)...

La documentación rápida de la columna Tipo de campo y la presentación en Modificadores, está en la pista (tip) del botón de cabecera de cada uno y la documentación completa del control de campos en Persiana de campos.

 

Persiana Relaciones

Se muestra cuando hemos definido algún campo de tipo >>, para definir los campos de relación entre el concepto actual y la lista de conceptos relacionados en ese campo.

 

Persiana Eventos

Permite crear funciones Javascript (hay documentación en la página Definición de eventos), con nombres que identifican la acción que dispara la ejecución de esa función, y el del campo que se va a mirar cada vez que cambie. También hay eventos para el momento de la creación de un conceptos, de su borrado, modificación de cualquier manera... Este código es parte de la funcionalidad de la clase y se traslada con ella cuando se copia la clase a otra base (por ejemplo desde la base ingrid-comun). 

Hay ejemplos y documentación en la base ejemplos  test-eventos. En este ejemplo, en la  clase .inc (de incidencias) hay definidos eventos que se ejecutan antes de grabar el campo Observaciones técnicas (obstec) que es la función definida en obstecGraba, y después de grabar un texto en el campo, definido en obstecGrabado. También antes de eliminar un concepto de esa clase: elimina.

 

Persiana JSON

Muestra en ese formato el contenido el documento actual (la definición de la clase) en la BD mongo. En cualquier otro concepto que no sea una clase, muestra la información completa del documento mongoDB (referencias, georreferencias, medidas, otras relaciones, campos directos, códigos de imágenes...)

Persiana Clase (Expertos)

Permite a los usuarios del grupo EXPERTOS de BD (g1), que son responsables del contenido, no del modelo de datos, marcar las opciones de presentación y características de la clase. Estos campos se pueden ver y editar también en modo tabla, en conjunto desde el árbol completo de Clases, en vez de una a una.

Descripción

Resumen o nombre, Descripción y Observaciones de la clase.

 

Presentación

Si se indica Sin campos, la clase sólo sirve de estructura jerárquica, pero no aparece al navegar desde una clase pasando por las superiores.

La Clase superior indica cómo se anida en al estructura de árbol de la persiana de Clases.

Ordenación por defecto de los conceptos, principalmente cuando aparezcan en cualquier lista como primer elemento. La sintaxis es de un objeto con los campos y valores 1 ó -1 (inverso), como por ejemplo en las tareas preventivas: {"fecpro":1,"esp":1}

Los campos Persianas de [...], controlan al visualización de las persianas, permitiendo ocultar las cuatro categorías de persianas de conceptos: campos generales, campos particulares, lista de relaciones -si hay algún campo de relaciones-, y lista de referencias (que son los conceptos que apuntan mediante algún campo al concepto actual). La de relaciones permite visualizarse separada por clases o otras juntas.

Al final hay repetido un Persianas de ficha, con una opción Rótulos anchos que se puede marcar para que las ventanas de ficha de todos los conceptos muestren la zona izquierda de las secciones y nombres de campos con una proporción más ancha.

 

Vista de columnas= particular, permite guardar la vista que tengamos en el momento de marcar con el conmutador. Se graba en BD en cada concepto. Las vistas se guardan fijas para todos los usuarios y aunque se cambien manualmente, es temporal, se recupera la almacenada al entrar en cada concepto. Si se quiere deshabilitar y se tiene permisos, basta con quitar la marca del campo.

Presenta imágenes de : imágenes y archivos asociados en el panel de imágenes: sólo del concepto y/o de sus hijos

Presenta mapas de : (la representación geográfica en el mapa):

- actual, su propia ubicación o posición geográfica (uno o varios iconos, líneas abiertas y/o polígonos cerrados). OBLIGATORIO para poder mostrar cualquiera o varias de las opciones siguientes:

- sus espacios "hijos" o inferiores relacionados en esa jerarquía de campos de relación mencionados.

- sus espacios "nietos" (los relacionados con sus "hijos" de la misma forma).

- su espacio "padre" al que el concepto actual apunta con ese primer campo de referencia a un espacio.

- los "hermanos", o sea, todos los conceptos que tienen el mismo "padre" que el actual.

- el contenido geográfico dentro de los límites de la georreferencia actual, sin ninguna relación de campos en BD.

 

Estilo

Se pueden ver ejemplos de casi todos en la base ejemplos  test-mapas

La definición detallada de estilos está en la página de Anexo estilos de capas.

La información de estas 7 pestañas es la misma que se puede ver al seleccionar una capa en la persiana Capas del editor de la Persiana de georreferencias (mapa). En al pista de capa campo, se muestra el modificador al que corresponde en la especificación detallada. Por ejemplo: color de borde (#), color de relleno (@), grueso de borde (g)...

IMPORTANTE los campos de pestaña Varios: Campo con estilo extendido, Campo con Color y Campo con tamaño, permiten representar geográficamente los individuos con detalles más realistas según una clasificación (que corresponderá a un bloque vectorial en formato .inca, por ejemplo), y dos campos de enteros que le darán color y tamaño en función del dato que tenga cada ficha individual.

Hay dos casuísticas habituales:
*  jardinería:  la representación gráfica de cientos de especies botánicas (que suelen ser conceptos) con una quincena de bloques distintos que por color y forma son los que se pueden distinguir visualmente en el mapa. Para esto creamos otro campo de tipo clasificación "familia gráfica" y definimos los pocos valores en la clase, cada uno con su grafismo .inca, tomados del índice de bloques. Esto tiene la ventaja de representar en el mapa con un campo y tener el dato de la especie en otro. Para evitar la desventaja de tener 2 campos que mantener a mano y además cometer errores, el método aconsejable sería hacer un procedimiento script que pondrá el grafismo en el campo no editable según una tabla de correspondencia entre especies y grafismos-bloques, y que se lanza cuando se quiera para tener todos los datos actualizados. Se podría hacer un cuadro de especies (conceptos) con un campo rótulo con el grafismo más adecuado y usar ese en el script.
*  carreteras:  representación de las señales verticales por su familia (pueden ser unas 100). Al coincidir el nº de grafismos con el nº de familias, podemos convertir el campo de tipo referencia a concepto familia a tipo rótulo, y definir nuestra tabla de rótulos, teniendo un solo campo de familia.

 

El estilo controla la forma de visualización:

- del icono gráfico que se muestra en el campo Icono (·) de la línea cuando los conceptos de esa clase se muestran en listas de datos alfanuméricos

- en la Persiana de georreferencias de cualquier concepto (bloques para representar elementos puntuales, o bien líneas para elementos lineales, o áreas cerradas para elementos superficiales).

Persiana Particulares (Expertos)

En algunas clases, aparece esta persiana con los datos globales a todos los elementos de ciertas clases fijas de Medea: Imágenes, Procedimientos, Espacios (características relativas a mapas), Cuentas Contables, Bancos.

Persiana Subclases

Sólo se muestra si la clase tiene subclases.

Una clase puede apuntar a otras en el campo Clase superior, para establecer una jerarquía entre ellas, de forma que tenga los campos y eventos de la clases superiores, añadidos a los suyos. Las clases muestran en esta persiana todas las clases que le hacen referencia.

Persiana Búsqueda

Es un formulario con todos los campos definidos para la clase (y clases superiores si las tiene), que son susceptibles de ser un filtro de búsqueda, y que no tengan en la definición del campo el que "No aparezca en los formularios de búsqueda" porque así lo hayamos puesto explícitamente.

En la BD de ejemplo indicada al comienzo de la página, si abrimos la página de la clase .campos, en su persiana Administración > Definición de campos > campos de .campos, veremos que el campo 't2· Texto multilínea' tiene el modificador 'b0', que impide que salga en los formularios de búsqueda. En la Persiana Búsqueda de más abajo, no se muestra.

Por otro lado hay algunos tipos incompatibles con la búsqueda en formulario, como las Tablas auxiliares definida inline, y otros. Aunque pueden verse, no tienen sentido para buscar, como la el tipo firma, el código JSON, código JS, vista de mapa Google o vista streetView... que deberían tener el modificador en 'b0'. Estos ya tienen internamente en la columna Modificadores 't0' para no mostrar estos campos como columnas en las tablas.

 

Los datos admitidos como máscaras y expresiones regulares, varían según el tipo de campo:

· Todos admiten la 'existencia'  !!  o 'no existencia'  !  de algún valor, poniendo esas máscaras.

· Numéricos, Fecha y Fecha-Hora: [operador] valor (el formato decimal Fecha hora es: AAAMMDD.HHMMSS)

· Alfanuméricos: Cualquier texto equivale a la búsqueda con expresión regular /valor/i (es decir, busca el valor independiente de mayusc/minusc en cualquier parte del texto. También admite una expresión regular´, en la que el valor sería por ejemplo: /

· Tabla definida en la clase (>>): tecleamos una máscara, o código, o resumen para seleccionar un concepto concreto, y lo busca como en los campos de referencia (>): los que incluyan una referencia al indicado.

El uso de la sintaxis más habitual en expresiones regulares de búsqueda PCRE (las de Perl también usadas en mongoDB) en el Anexo de Expresiones regulares

Persiana Conceptos

Muestra en un control de lista (o tabla) todos los conceptos de la clase. El menú contextual permite las operaciones habituales en listas de conceptos: Cambiar Icono o Identificador, eliminarlos, copiarlos, lanzar los procedimientos contextuales sobre ellos. También navegar a los conceptos accesibles desde sus campos de referencia a otros conceptos.

Con el conmutador al pie Incluye subclases, se mostrarán todos los conceptos de todas las subclases (habitualmente las clases con subclases no tienen conceptos propios).

Botón Contextuales...

Muestra la lista de procedimientos que tengan como Clase asociada, la del concepto actual tomando 3 orígenes distintos: la propia BD, la base ingrid-comun y los definidos en el código JS de la propia aplicación Medea.