API de la aplicación Ingrid 9

Sección: js

Módulo: ingrid.BasiliscoBase..js

bas Documentos {_id,cla,cod}
bas.dCompleta (d, forzado) Completa d|id > {_id,cla,cod}, comprueba retorna null si incorrecto, si forzado fuerza valido con '_'
bas.cla_cod (id) >[cla,cod]
bas.aClase (d) Obsoleta, utilizar Clase. De documento a clase, admite también _id y código de clase, aClase de clase la misma
bas.Clase (d) Clase del documento, admite también _id e {_id}, Clase de clase la clase raiz
bas.clase (d) Código de clase del documento, admite también _id e {_id}
bas.codigo (d) Código de concepto del documento, admite también _id e {_id}
Clases
bas.esParticular (clacod) Es la clase o subclase particular (tiene estados particulares) ('',car,bus,pro)
bas.resumenEnSingular (d) Resumen de la clase en singular, antes singular
M20230413
bas.buscaIngridClase (clacod, nombre) Busca clase extendida: ingrid.<clacod>.nombre para clacod y superiores
Icos
bas.docInfoHtml (d, r, agregaMenu) Iconos de propiedades
bas.camInfoHtml (cla, h, conMenu) Iconos de campo: pad(clase) fijo(chincheta) eventos
Permisos
bas.visible (d) ¿Tiene el usuario permisos para visibilizar el documento?
bas.editable (d) ¿Tiene el usuario permisos para editar el documento?, retorna true|false
bas.creable (d) ¿Tiene el usuario permisos para crear el documento?
bas.eliminable (d) ¿Tiene el usuario permisos para eliminar el documento?
bas.ejecutable (d) Pemiso de ejecución del documento (5super 4admin 3exper 2tecni 1opera)
bas.conTraza (d) Si clase con campos con traza no editable entabla
bas.Modifica () Para modificar conceptos, cada NUMERO a modificar graba
> {pon,graba,termina, error,docn,ms, mods,modn,grabando}, si comprueba solo graba si distinto
oo.pon (doc, data, comprueba1) Graba doc._id y data, o (doc,cam,val,comprueba) o (doc)
oo.graba (cbo) Graba conceptos modificados al terminar, cada NUMERO o bajo petición
oo.termina (rotulo, cbo) Graba conceptos modificados sin grabar, cbo({error,docn,ms}), si !cbo ingra.dialogoError o dialogoInforma
bas.Agregador (...al) Obsoleto. Utilizar bas.Modifica

Módulo: ingrid.Basilisco.js

Basilisco () Clase que representa a una BASE DE DATOS, vas bas= new Basilisco();
bas.enviaServidor (orden, meta, cb) Envia petición al servidor
meta:{mensaje(dialogo),conHttp(jsonp)} > ingra.node.envia({orden,...},cb);
Util
bas.mapReduce (meta, cb) Envia una operación de mapReduce al seridor, {map,reduce:null,query,scope} > {error|docl:[{_id,value}]}
bas.opera (meta, cb) Envia una operación de operar al servidor, {find,cod,val,ini,num} > {}

Módulo: ingrid..js

ingrid.clase (d) Código de clase del documento, admite también _id e {_id}
ingrid.codigo (d) Código de concepto del documento, admite también _id e {_id}
ingrid.dCompleta (d, forzado) Completa d|id > {_id,cla,cod}, comprueba retorna null si incorrecto, si forzado fuerza valido con '_'

Módulo: ingrid.archivo.js

Servicio web
Los servidores de Ingrid dan servicio mediante el protocolo WEBSOCKETS (con sesión) y HTTPS restringida al directorio público de cada proyecto (ima) (sin sesión)

bas.urlArchivo (arc, conDate) DATE URL de archivo a través de servicio web
arc(relativo a proyecto o url)
bas.urlArchivoHttp (arc, conDate) DATE URL de archivo directo (necesita estar en el directorio 'ima' del proyecto)
servidor+'/bases/'+basedatos+'/'+arc; SIN SESIÓN
bas.subeArchivo (meta, cb) Sube archivo al servidor, arc:camino relativo al directorio de proyecto, crea subdirectorios
arc(destino) {file>blob|url|data|inca>blob|canvas>blob, regraba, sinfondo} // > {arc} regraba:pregunta(null) sobreescribe(1) renombra(2) mantiene(3) inca(meta>incav) canvas(meta.quality)
bas.subeArchivos (dir, meta, cb) Sube archivos al servidor, dir(destino) {urls|files|url|file, regraba, sinfondo} > [subeArchivo] > {arcl}
Archivos
Los caminos de archivos y directorios son absolutos al directorio del proyecto
bas.existeArchivo (meta, cb) Retorna true si existe el archivo;
meta:{arc|url} o (arc,cb) > cb({existe}) o existe, permiso L admite URLs
bas.leeArchivo (meta, cb) Lee archivo en formato UTF-8;
meta:{arc|url,encoding,utf8,ansi,primera} o (arc,cb) > {data} permiso L admite URLs
bas.leeArchivoAnsi (meta, cb) Graba archivo en formato ANSI;
meta:{arc|url|...} o (arc,cb) > {data} permiso L admite URLs
bas.leeArchivoJson (meta, cb) Lee archivo en formato JSON;
meta:{arc|url} o (arc,cb) > {data} permiso L admite URLs
bas.grabaArchivo (meta, cb) Graba archivo; requiere permiso C; admite URLs en data
o (op,cb); {arc, data|url, creadir, encoding|utf8|ansi, regraba, bom}
bas.grabaArchivoUtf (meta, cb) Graba archivo en formato UTF-8; requiere permiso C; encoding='utf8'; bom=1
o (arc,data,cb); {arc, data, creadir}
bas.agregaArchivo (meta, cb) Agrega archivo; requiere permiso C;
o (arc,data,cb); meta:{arc,data}
bas.copiaArchivo (meta, cb) Copia archivo; requiere permiso C;
o (arc|arcl,destino,cb); meta:{arc|arcl,destino}]
bas.mueveArchivo (meta, cb) Mueve archivo; requiere permiso C
o (arc|arcl,destino,cb); meta:{arc|arcl,destino}]
bas.eliminaArchivo (meta, cb) Elimina archivo; requiere permiso D; meta:{arc|arcl}
Directorios
bas.leeDirectorio (meta, cb) Lee directorio del proyecto
dir o {dir, esdir:null, reg:null, ext:null, orden:1, basedatos(solo admin==2) } o (dir,cb) > {arcl:[nom]} permiso L
bas.leeDirectorioO (meta, cb) Lee directorio extendido del proyecto
dir o {dir, esdir:null, reg:null, ext:null, orden:1, basedatos(solo admin==2) } o (dir,cb) > {arcl:[{nom,tam,esdir,ctime,mtime,atime}]} permiso L
bas.creaDirectorio (meta, cb) Crea directorio del proyecto
meta:{dir,recursivo} o (dir,cb); permiso C
bas.eliminaDirectorio (meta, cb) Elimina directorio del proyecto
meta:{dir} o (dir,cb) > {} permiso D
bas.calculaDirectorio (meta, cb) Calcula número y tamaño de archivos de un directotrio del proyecto (recursivo)
o (dir,cb) permiso D
bas.buscaArchivos (meta, cb) Busca archivos en directorio; {dir, ...} > {arcl}; permiso L
bas.copiaArchivos (meta, cb) Copia archivos; {dir, noml|reg, desl|destino, regraba:1, siExiste:0}; permiso C
bas.mueveArchivos (meta, cb) Mueve archivos {dir, noml|reg, desl|destino, regraba:1, siExiste:0}; permiso C
bas.eliminaArchivos (meta, cb) Elimina archivos; {dir, noml|reg}; permiso D
bas.mueveMascara (meta, cb) Mueve archivos mediante máscara de * (Debe tener el mismo nº de * el origen y el destino); meta:{origen,destino} o (origen,destino,cb); permiso C; Ejemploe ("ima/jpg/*_nuevo*.jpg", "ima/jpg_nuevo/**.jpg)
JSON
bas.importaJson (meta, cb) Importa datos en formato JSON a la base de datos
{archivo, limpia=0, noValidaCodigos=0, clasesNo=","|[], clasesSi=","|[]} o (archivo,cb) > {docn,clan,[clases]}
bas.exportaJson (meta, cb) Exporta datos en formato JSON desde la base de datos
{archivo, condicion={}, campos={}, jsonArray=0} o (archivo,cb) > {docn]}
bas.eliminaJson (meta, cb) Elimina todo el contenido de la base de datos
{nueva:1, plantilla} > {dBases}
bas.agregaCsv (meta, cb) Importa datos en formato JSON a la base de datos
{archivo, limpia=0, noValidaCodigos=0, clasesNo=","|[], clasesSi=","|[]} o (archivo,cb) > {docn,clan,[clases]}
Varios
bas.directorioZip (meta, cb) Lista de archivos en un directorio ZIP
azip o (azip,cb) > arcl:[{nom,tam,esdir}] permiso C
bas.leeZip (meta, cb) Lee un archivo en un directorio ZIP
o (azip,arc,cb); meta:{azip,arc} > {data} utf8 permiso C
bas.leeXlsx (meta, cb) Lee un archivo en formato XLSX (directorio ZIP)
(arc,[hoja],cb) o ({arc,[hoja]},cb) > (libro) libro:{hoja:[[]]}
bas.enviaCorreo (meta, cb) Envia correo web
{ transporter:{service,auth:{user,pass}}, mail:{from, to, subject, text, html, attachments:[{filename, content, path}]} > {info:{response}}
bas.html2pdf (meta, cb) Concierte de HTML a PDF
o (origen,destino,cb); meta:{origen,destino,regraba,op} op:{a4h,a4v,a3h,a3v,mar,...-*,wk}
bas.html2ima (meta, cb) Convierte de HTML a IMAGEN
o (origen,destino,cb); meta:{origen,destino,op} op:{-*,wk}
bas.titiritero (meta, cb) Convierte HTML a PDF con el titiritero de Google
o (origen,destino,cb); meta:{origen,origenHtm,origenUrl, destino, arcl,directorioHtm,directorioPdf, creadir,regraba,op} op:{a4h,a4v,a3h,a3v,mar,...-*,wk}

Módulo: ingrid.busquedas.js

Búsquedas en lenguaje INGRID (Mongo resumido)
Subconsultas del lenguaje de búsquedas de INGRID
subconsultas: entre (...) en consultas, retornan lista de _id
· llamana mongo.distinct(campo,busqueda), puede retornan cualquier campo de los conceptos retornados en la búsqueda
· formato (consulta => campo) , campo por defecto _id
· formato abreviado (clase.campo) equivale a (cla==clase => campo)
· <usu > equivale al código del usuario actual
HG.gasl.pry.bus = "(cla==per cod=<usu > => prel.pry)" propiedad bus del campo pry de la relación gasl de la clase HG
Búsquedas en lenguaje natural (Índice de textos)
Podemos incluir una búsqueda de conceptos en la ventana principal, en "Datos generales de la base · Base · Búsquedas" o en muchas funciones del API
Si en una búsqueda, introducimos operadores o una única palabra que incluya '.', se realizará una búsqueda en lenguaje de Ingrid, si empieza con '{' se realizará una búsqueda en lenguaje de Mongo, en otro caso se relizará una busqueda en lenguaje natural mediante el índice de textos creado (Ver "Datos generales de la base · Base · Índice de texto")

bas.creaIndiceTexto (meta, cb) Crea índice de textos, crea campo de referencias 'indiceRefl'
{campos} > {results}, defecto:campos:{res:10,tex:3,indiceRefl:1}
bas.eliminaIndiceTexto (meta, cb) Elimina índice de textos {}

Módulo: ingrid.campos..js

bas.montaCamposDefecto (cla, camrel, cbo) Monta campos de defecto, agrega particulares, camrel:campo de relación opcional, cbo:opcional
bas.chequeaCampos (op, cb) Chequea campos, {defecto}
bas.acumulaCamposDefecto (codcla) Acumula campos de defecto de la estructura de clases
bas.copiaCamposDefecto (caml) Copia campos de defecto, duplica campos, copia opciones, cod !ocu !nofic tip!=='>>'
bas.buscaCampo (...codigos) Busca campo, retorna campo extendido
{clase|codClase, codCampo, ...} > {...cam,cla,[cla2],[cam2],cam, [campo]}; codClase o clase; admite clases y campos en cadena
bas.inicialCampo (campo) Campo inicial de la cadena de campos, campo:{...,cla,cam,campo}
bas.codigosCampo (campo) Códigos de campo de un camino > [cod], !comoVector incluye clase: codcla.cod...
bas.resumenesCampo (campo) Resúmenes de campos de una camino > [res], !comoVector incluye clase: rescla.res...

Módulo: ingrid.campos.js

Monta campos

bas.montaCampos (doc2, op) Monta campos del primer concepto de la lista doc2.docl
{editable,presentaCamposExistentes} > caml
bas.montaCampos1 (caml, hl, op) Agrega campos
bas.montaCamposExistentes (docl, op) Monta campos existentes en los documentos {editable} > caml
bas.montaCamposDocumento (doc, op) Monta campos del documento
bas.camposImprimibles (doc, op) Monta campos imprimibles del documento, {refcamcod(eliminaCampoActual), enTabla, sinCab} > caml
bas.campo_cod2res (h, refl, cb) Monta referncias de campos, refl:{cod} > refl:{cod,res,estilo} en referencias,clasificaciones y selecciones
Múltiples
bas.leeDistintosCampo (meta, cb) Lee valores distintos de un campo
{campo,find} o (campo,find,cb) > {vall} (mongo.distinct)
Campos de clase
bas.cuentaCampos (meta, cb) Cuenta valores de los campos de una clase
{clacod,analiza,presentaTodos,creasino} > {log,modl}
bas.analizaCampos (meta, cb) Analiza valores de los campos de una clase
{clacod,presentaTodos,creasino} > {table,modl}
bas.eliminaCampo (meta, cb) Elimina campo de los conceptos de una clase
{clacod,[camrelcod], camcod||[], soloValores=1} > {caml,docn}
bas.agregaCampo (meta, cb) Agrega campo a los documentos de una clase
{clacod, cam:{}}
bas.cambiaValoresCampo (meta, cb) Cambia valores de un campo e los documentos de un clase
{clacod,[camrelcod],camcod,[camrelcod],[valori],[valdes]} > {docn} si valori==null pone sin definir, si valdes==null elimina
bas.copiaValoresCampo (meta, cb) Copia valores entra campos de una calse
{clacod,camori,camdes} > {campo} CAMBIO DE TIPO
bas.cambiaCodigoCampo (meta, cb) Cambia código de campo en documentos o subdocumentos de una clase
{clacod,camori,camdes} > caml}, 'camori' puede ser compuesto campo.campo, 'camdes' no
bas.cambiaValorCampo (meta, cb) Cambia valor de un campo en múltiples documentos
{find,camcod,camval(expresionRegular(d,i))} > {docn)
bas.compruebaValoresCampo (meta, cb) Comprueba el tipo de valores de un campo en documentos de una clase
{clacod,camcod,prueba} > {docn)
bas.cambiaTipoCampo (meta, cb) Cambia el tipo de campo en documentos de una clase
{codigos o clacod,[camrelcod],camcod, camtip, prueba} > {clase} si modificada // camtip: tip(s#>erjt) pad(#>) que(1cod2res)
Graba campos
bas.grabaCampos (meta, cb) Graba campos en documentos {_id|_idl|find, data, multi} o (_id|doc,cod,val,cb) o (find,data,cb) > {} Graba campos en todos los conceptos buscados;
bas.grabaCampo (doc, cod, val, cb) Graba campo en documento, doc|id
bas.grabaCamposEV (doc, data, cb, op) Graba campos en documento procesando eventos, doc|id, deInterfaz, graba[do]Campo
bas.grabaCampoEV (doc, cod, val, cb, op) Graba campo en documento procesando eventos, doc|id, val==null elimina(unset)

Módulo: ingrid.clases..js

Clases

bas.cuentaClases (meta, cb) Actualiza bas.dClases
bas.copiaClase (meta, cb) Copia clase y conceptos de la clase
{clacod,clacod2,prioridadOrigen} > {docn,docn0,cla2}
bas.renombraClase (meta, cb) Cambia clase y conceptos de la clase
{clacod,clacod2,prioridadOrigen} > {}
bas.eliminaClase (meta, cb) Elimina conceptos de clase
{clacod||[], incluyeSubclases=0, soloConceptos=1} > {clacodl,soloConceptos,docn}
bas.compruebaClase (meta, cb) Compueba clase {cla,cod}
{clacod} > {cambios}
bas.codigoClase (clacod) Código de clase, soporta clase incompleta, clacod, cla o cla incompleta
bas.eliminaClaseSin (cla, cb) Elimina, sin preguntar, la clase actual si no tiene conceptos
Superclases y Subclases
bas.superclases (doc, sinCab) Superclases recursivas, incluida la misma si es clase
clacod|clase|documento > [clase]
bas.superclasesComunes (docl) Superclases comunes a lista de documentos
o (clacodl), > [clacod] terminado en 'con'
bas.esSubclase (clacod, clacodsup) Es clacod una subclase de clacodsup, retorna nivel 1==lamisma
bas.subclases (clacod, op=) Retorna lista ordenada de subclases
{incluida=0,recursivas=1,objetos=0} > [clase] o {cod:clase} si objetos
bas.subclasesIdl (clacod, op=) Retorna lista de identificadores de subclases
bas.subclasesCodl (clacod, op=) Retorna lista de códigos de subclases
bas.subclasesFindId (clacod, op=) Retorna búsqueda de subclases en formato MongoDb
bas.subclasesFindCla (clacod, op=) Retorna búsqueda de conceptos de subclases en formato MongoDb
bas.subclasesDeCadena (a) Retorna códigos de clases incluidos y excluidos(-)
bas.subclasesEstilo (clacod) clacod y descendientes con estilos acumulados
Clasificaciones y referencias
bas.clasificacionesDeClase (cla) Clasificaciones de clase, incluye relaciones
bas.referenciasDeClase (doc, clacod, cb) Busca clases de conceptos que referencian a doc, doc|id > [_id]
bas.claseReferenciaA (cla, op) Clase referencia a clases > [clacod.[camcod.]camcod]
bas.claseReferenciadaPor (clacod, op) Clase es referenciada por clase > [clacod.[camcod.]camcod] s

Módulo: ingrid.estilo..js

bas.estilo_H (doc, op, style, properties) Estilo acumulado de un documento en HTML > bas.estilo_acumula > ingra.estilo.H
bas.estilo_H2 (doc, op, style, properties) Estilo acumulado de un documento en HTML DIV > bas.estilo_acumula > bas.estilo_H2
bas.estilo_O (doc, padre, op, style, properties) Estilo acumulado de un documento aplicado a DOM > bas.estilo_acumula > bas.estilo_O
bas.estilo_O2 (doc, padre, op, style, properties) Estilo acumulado de un documento aplicado a DOM DIV > bas.estilo_acumula > bas.estilo_O2
bas.estilo_G (doc, g, punl, op) Estilo acumulado de un documento dibujado en CANVAS > bas.estilo_acumula > bas.estilo_G
bas.estilo_acumula (doc, op) Acumula estilos de un documento con las de sus clases superiores, op:{dClases}
bas.estilo_penrgb (doc) Color de estilos acumulados, recursivo

Módulo: ingrid.estructura..js

Estructura de conceptos

bas.buscaCampoPadre (clacod, _deClase) Busca campo de clase 'clacod' o superiores que sea primera referencia
clacod:código de clase o concepto o clase; _deClase; si exiete buscara solo refereincas de clase _deClase o inferiores;
bas.buscaCampoEspacio (clacod) > buscaCampoPadre(clacod,'esp');
bas.buscaCamposDeClase (clacod) Campos que apunta a clase o superclase > [campo] //
bas.montaPadres (bus, op, cb) Busca padres recursivamente montando una estructura jerárquica
bas.montaBusquedas (busl, cb) Monta búsquedas en cascada. Primera búsqueda general, siguientes:
bas.presentaEstructura (doc, comoTexto) retorna estructura desplegada, si comoTexto retorna cod · res de cada concepto tabulado con su nivel, por defecto retorna lista de conceptos con campo niv(nivel)
Operaciones con campos numéricos
bas.buscaCamposNumericos (cla, camposNo, soloCodigos) Busca campos numéricos en estructura de clases
bas.acumulaCamposNumericos (meta, cb) Acumula campos numéricos en estructura de clases
bas.acumulaCamposNumericos2 (meta, cb) Acumula campos numéricos en estructura de clases
Formato CSV
bas.importaCSV (meta, cb) Importa archivo en formato CSV (~pro.csv.importa)
Tramos de datos para temáticos o informes
bas.montaTramos (busqueda, camcod, op, cb) Documentos en lista por valores de campo
bas.montaTramosDos (busqueda, campoX, campoY, op, cb) Documentos en tabla por dos campos

Módulo: ingrid.clasificacion..js

bas.buscaOpcion (...codigos) Obsoleta, usar opcionClasificacion
bas.buscaOpcionRes (...codigos) Obsoleta, usar resumenClasificacion
bas.opcionClasificacion (...codigos) De codigos de clase, campo clasificación y opción a objeto opción o nulo
{codClase, codCampo, ..., codOpcion} > {...cam,cla,cam,[cam2]}; codClase o clase; admite campos en cadena
bas.resumenClasificacion (...codigos) codigos:clacod.[camcod].camcod.opccod > res|cod|opccod

Módulo: ingrid.comunica.js

bas.httpGET (meta, cb) Petición GET, {url,headers,options, archivo|buffer|ansi|json} > {data}, http o https
bas.httpPOST (meta, cb) Peticion POST, {url,headers,options,data, archivo|buffer|ansi|json} > {data}, http o https

Módulo: ingrid.dialogo.js

bas.dialogoLeerArchivo (op, cb) Presenta diálogo de selección de archivo en el directorio de la base, > {ret,arc}
op: {tit,dir,arc,accept} > {ret,arc}, si error ret=-1, tit:'Seleccionar archivo', dir o arc con camino
bas.dialogoGrabarArchivo (op, cb) Presenta diálogo de grabación de archivo en el directorio de la base, > {ret,arc}
op: {tit,dir,arc} > {ret,arc}, si error ret=-1, tit:'Grabar archivo como', dir o arc con camino, arc puede no existir
bas.dialogoSeleccionConceptos (titulo, busqueda, op=) Presenta diálogo de selección en lista de conceptos > {doc}
admite: busqueda | docl
op: {actual,sincla}, actual:_id, sincla:sin código de clase

Módulo: ingrid.eventos.js

Eventos. En el campo eventos de cada clase podemos tener los siguientes métodos:
Campos

leeCampo (bas, doc, cod) > [clase].eventos.<b>[cod]Lee(bas,doc)</b>; retorna valor sin formatear para campos de tipo $
grabaCampo (bas, doc, cod, val, cb) > [clase].eventos.<b>[cod]Graba(bas,doc,val,cb)</b>; > {data,refresca,fin}; data:agrega data a data a grabar; fin:interrumpe grabación
grabadoCampo (bas, doc, cod, val0, cb) > [clase].eventos.<b>[cod]Grabado(bas,doc,val0,cb)</b>; > {refresca}; val0:anterior (el actual está en doc)
leeCampo2 (bas, doc, lin, camcod, cod) > [clase].eventos.<b>[camcod]_[cod]Lee(bas,doc,lin)</b>; retorna valor sin formatear para campos de tipo $
grabaCampo2 (bas, doc, lin, camcod, cod, val, cb) > [clase].eventos.<b>[camcod]_[cod]Graba(bas,doc,lin,val,cb)</b>; > {data,refresca,fin}; data:agrega data a data a grabar; fin:interrumpe grabación
grabadoCampo2 (bas, doc, lin, camcod, cod, val0, cb) > [clase].eventos.<b>[camcod]_[cod]Grabado(bas,doc,lin,val0,cb)</b>; > {data,refresca}; data:agrega data a data a grabar; fin:interrumpe grabación, val0:anterior
Conceptos
crea (bas, doc, cb) > [clase].eventos.<b>crea(bas,doc,cb)</b> > {fin}; fin:interrumpe creación
creado (bas, doc, cb) > [clase].eventos.<b>creado(bas,doc,cb)</b> > {}; ++
elimina (bas, doc, cb) > [clase].eventos.<b>elimina(bas,doc,cb)</b> > {fin}; fin:interrumpe eliminación
eliminado (bas, doc, cb) > [clase].eventos.<b>eliminado(bas,doc,cb)</b> > {};
cuerpo (bas, oConcepto, doc2, cb) > [clase].eventos.<b>cuerpo(bas,oConcepto,doc2,cb)</b> > si retorna true no presenta referencias ni contextuales, puede añadir elementos al interfaz
Base de datos
abre (bas, cb) > [clase].eventos.<b>abre(bas,cb)</b> > si retorna error interrumpe la apertura
> [clase].eventos.<b>presenta(bas,doc,cb)</b> > si retorna error interrumpe la apertura

Módulo: ingrid.navega.js

Camino. El histórico de los conceptos presentados en la ventana principal lo llamamos camino de navegación y podemos movernos por él.

bas.camino_superior (recorta) Retorna el concepto superior en el camino
bas.camino_superiorId (recorta) Retorna el _id superior en el camino
bas.camino_posicionId (i, recorta) Retorna el _id de la posición i;
bas.camino_anteriorId () Retorna el _id del concepto anterior en el camino
bas.camino_siguienteId () Retorna el _id del concepto siguiente en el camino
Navega
Denominamos navegar a un concepto/s a la acción de presentar en ventana principal la ficha del concepto/s
bas.navegaPosicion (i) Navega a la posición 'i' del camino
bas.navegaAnterior () Navega al concepto anterior (de la lista del superior)
bas.navegaSiguiente () Navega al concepto siguiente (de la lista del superior)
bas.navegaSuperior (ev) Navega al superior, decrementa el camino
bas.navega (d, doc2) Navega al concepto 'd', concepto seleccionado de la lista actual, que pasa a superior, incrementa el camino,
doc2o: concepto extendido superior opcional, fio: fila opcional
bas.refresca (cbo) navegaActual
bas.navegaBusca (meta, cbo) Presenta el resultado de búsqueda(bus) en ventana principal con descripción (res), { res,bus|find,options,docl, ... }
bas.navegaConceptos (res, docl, cbo) Navega a los conceptos (docl), res: Descripción de los conceptos, docl pueden ser calculados (no existir en base de datos)
bas.navegaConcepto (doc2, cbo) Navega al concepto (d), cbo: callback opcional
Sesion
Navegación de bajo nivel, no modifica el camino
bas.sesionNavega (d, cbo) Carga y presenta concepto en ventana principal {doc|_id}
bas.sesionPresenta (doc2, cbo) Presenta concepto en ventana principal {doc|_id}

Módulo: ingrid.presenta.js

bas.presentaContenedor (contenedor, doc2, op) Presenta datos en econtenedor
data:{docl,_idl,find, arc,gra} > ingra.presentaContenedor
data:{arc,gra, docl,find,_idl}
bas.presentaGrafico (contenedor, gra, op=) Presenta gráfico en contenedor
op:{titulo,conDate ... doc,alta,media,original ... url,ext,grabaArchivo}
bas.presentaArchivo (contenedor, arc, op=) Presenta archivo en contenedor
op:{titulo,conDate,doc,tam ... url,ext,grabaArchivo}

Módulo: ingrid.referencias.js

bas.referencias_tablas (doc2, op, cb) Tablas de referencias, para impresión, {enImpresion,conref="... -..."} > {secl:[{tit,docl, clacod,cam}]}
bas.cuentaReferencias (meta, cbo) Cuenta referencias > {docn,docm,log,ms}
bas.montaReferencias (meta, cbo) Monta referencias, {find|docl} > {docn,docm,ms}
docn:comprobados docm:modificados ms:milisegundos
bas.chequeaReferencias (meta, cbo) Comprueba referencias, {find|docl} > {docn,docm,ms,log}
docn:comprobados docm:modificados ms:milisegundos, log:mensajes de error
bas.chequeaCodigos (meta, cbo) Chequea códigos, {prueba} > {log}

Módulo: ingrid.restricciones..js

Restricciones de conceptos
doc:{_id,cla,amb,tra,ress:{clacod:restriccion}} > 0- 1D 2C 3E 4L

bas.restriccionL (d) Restricción L. no se puede Leer,Editar,Crear,Destruir
bas.restriccionR (d) Restricción R. no se puede leer(solo:_id,res),Editar,Crear,Destruir
bas.restriccionE (d) Restricción E. no se puede Editar,Crear,Destruir
bas.restriccionC (d) Restricción C. no se puede Crear,Destruir
bas.restriccionD (d) Restricción D. no se puede Destruir
bas.restriccionConcepto (d) Restricciones del concepto (d) para el usuario actual
Restricciones de campo
cam:{ress:{usucod:restriccion}} > 0- 1D 2C 3E 4L
bas.restriccionCampoL (h) Restricción de campo L. no se puede Leer,Editar,Crear,Destruir
bas.restriccionCampoR (h) Restricción de campo L. no se puede Leer,Editar,Crear,Destruir
bas.restriccionCampoE (h) Restricción de campo E, no se puede Editar,Crear,Destruir
bas.restriccionCampo (h) Restricciones del campo (h) o (clacod.camcod) para el usuario actual
Restricciones (ress)
bas.restriccion_ac (ress) De restricciones a cadena
bas.restriccion_dc (a) De cadena a restricciones DCERL(12345)
bas.montaRestricciones (usu) Monta restricciones de clase para el usuario (usu) > {clase:restriccion}
defecto: super admin g1:exper g2:{cla:3,car:3,bus:3,dir:3,pro:3} g3:{cla:3,con:3} resto:{cla:3,con:3,dir:4,pro:4}

Sección: js.a

Módulo: ingrid.db.js

ingrid.db.dc (bas, doc, cam, val, op, cb) De cadena a valor, {creasino,claseDefecto,claseForzada,noGraba,enRelacion} > valor
ingrid.db.ac (bas, doc, cam, val, op) De valor a cadena, {doc2,enInput} > cadena

Módulo: ingrid.igra.js

bas.montaIgra (meta, cbo) Monta datos en formato IGRA desde documentos y campos
{docl,caml|campos} {...conceptosCampos,codigosConceptos,codigosCampo, colorPorClase, divisor}
> igra, si presentaConceptos > {docl}, si presentaDatos > {tabla,campos}, igra: {titulos, ejeX:[cod], serl:[{cod,datl}], ...}
bas.preparaIgra (meta, op) Prepara datos en formato IGRA para imprimir o exportar (dataURL)
bas.presentaIgra (padre, meta, style, properties) Presenta datos en formato IGRA en pestaña

Módulo: ingrid.inca.js

Librería GDAL

bas.gdal2inca (meta, cb) Lee archivo geográfico a formato inca, {arc|origen,...} > {inca}
bas.inca2gdal (meta, cb) Graba arhivo geográfico desde objeto inca u archivo inca(origen), {arc|destino,inca|origen,...}
bas.gdal2gdal (meta, cb) Convierte formatos con librería GDAL
{origen, destino, epsgOrigen, epsgDestino, ansiOrigen, ansiDestino, regraba:1}
De base de datos a INCA
bas.docl2inca (docl, op=) Monta formato INCA desde lista conceptos de la base de datos
op:doc|{doc, capasSimples, conCampos, conGraficos} > inca
capasSimples: sin capas sin conceptos, estilos acumulados (defecto en ingrid no editables)
conGraficos: (defecto 1 gráfico)
bas.montaInca (que, op, cb) Monta formato INCA desde lista de conceptos, búsqueda, documento o documento extendido > inca
que:inca|doc|doc2|bus|docl op:d{doc, capasSimples, conGraficos=1, conCampos}
bas.preparaMapa (que, op, cb) bas.montaInca > ingra.preparaMapa(inca) > {dataUrl,...}
bas.montaInca: que:inca|doc|doc2|bus|docl op:d{capasSimples,sinGra} > inca,op
ingra.incav.dataUrl op:{id, tam=1, formato:'jpg', calidad:0.85, alto[Mm], ancho[Mm], maximo[Mm]} > {dataUrl,formato,calidad,alto[Mm],ancho[Mm]}
Operaciones desde o hacia formato INCA
bas.incacApp (arc) Abre aplicación incac con el archivo o url
bas.incavApp (arc) Abre aplicación incav con el archivo o url
bas.leeInca (arc, op=) Lee archivo en formato INCA, soporta cambio de DATUM y de juego de caracteres
bas.grabaInca (arc, inca, op=) Graba archivo en formato INCA, incas.grabaDatos + bas.grabaArchivo
bas.convierteInca (origen, destino, op=) Convierte archicos desde o hacia formato INCA
bas.importaInca (inca, op=) Importa datos desde formato INCA {regrabaCapas, eliminaConceptos, prueba} > grabaConceptos {docn,docl(prueba)}
Mapas temáticos
bas.temaBusquedas2inca (busquedas, app, cb) Desde una lista de búsquedas, monta un objeto INCA con una capa por cada búsqueda, para cada búsqueda podemos definir una descripción, estilos y programa de rótulos
bas.temaCampo2inca (bus, cam, op, cb) Desde los valores de un campo (cam) de una lista de conceptos (bus), monta un objeto INCA con capas por rango de valores
bas.camposInca (cla) De clase a campos INCA, no se exportan ocultos, sin ficha o de relación

Módulo: ingrid.mapas.js

Busca en información geográfica de bases de datos

bas.mapas_chequea (meta, cb) Cheque mapas, > busca geol > georec,... graba si distinto
bas.mapas_buscaCercano (meta, cb) Busca punto cercano, {x,y,pun|rec|punl,busqueda,margen} > {doc}, agrega .geodistancia
bas.mapas_buscaCercanos (meta, cb) Busca conceptos cercanos, {x,y,pun|rec|punl,busqueda,margen,numero=1} > {docl}, agrega .geodistancia
bas.mapas_buscaDentro (meta, cb) Busca punto dentro, {pun|x,y|rec|doc.georec, margen, completos} > {docl}
bas.mapas_buscaCercanoGps (meta=) Busca concepto cercano a mi posición actual; {pun:actualGPS,bus:botonGPS} bus:"busqueda;margen;numero"
Operaciones sobre la información geográfica de bases de datos
bas.mapas_cam2geo (meta, cb) De campo a georreferencia, {busqueda,campox,campoy,epsg,prueba} > {docn,errn,errl} modificados y con errores
bas.mapas_geo2cam (meta, cb) De georreferencia a campos, {busqueda,campox,campoy,epsg,prueba} > {docn,errn,errl} modificados y con errores
bas.mapas_leeCentros (bus, op, cb) Retorna las georreferencias de los conceptos buscados (bus)
{centros,epsg} > {docl}, doc:{_id,geol} en coordenadas op.epsg o doc:{_id,centro} si op.centros
bas.mapas_posicion (cb) Retorna tu posición actual en formato geo > {geo:{tip:'B',punl:[gps]}}
bas.mapas_compruebaIslas (bus, cb) Comprueba y modifica el sentido de los polígonos de los conceptos buscados (bus) mediante proceso geográfico de islas (islas sentido contratio reloj)
bas.mapas_superior (meta, cb) obsoleta, usar mapas_buscaDentro
bas.mapas_buscaClaseCampoDentro (meta, cb) Comprueba y modifica el valor del campo padre de los conceptos de la clase, mediante búsqueda geográfica
bas.mapas_buscaEnEspacios (binl, claesp, camesp=null) Busca geograficamente conceptos(binl) en espacios(espl) retorna encontrados
preparaEspacios (bas, claesp) Prepara espacios para búsquedas geográficas > espl:[{_id,geo,area,limitel}]
Rutass
bas.mapas_montaRutas (busquedaRutas, campoHijos, esprueba) Monta rutas 'busquedaRutas' con hijos en 'campoHijos'

Módulo: ingrid.tareas..js

bas.tareas_arbol (ope, cb) Monta tareas en niveles > {iidl, nivn, docs} ope:Bins en nveles
bas.tareas_duracion (ope, cb) Calcula la duración de la operación > {binl,docs} bin:{id,dur,idl}, incluye conLigadas
bas.tareas_medidas (tarl, docs, cb) Monta medidas de tareas > tarl:[{medl}] docs:{}
> {medl,docs,numinc,numreq} med:{ope(id),esp(id),bin(id),medl:[{cod,val,obs,inc}] despliege intermedio
Tareas preventivas
bas.tarpre_creaSiguiente1 (tar, frel) Crea tarea preventiva siguiente a tar, no graba
bas.tarpre_cierraTareas (tarl, docs, cb) Cierra tareas preventivas creando siguientes (tarl), docs opcional > tarpre_creaSiguiente1

Módulo: ingrid.telegram.js

Conexión a Telegram mediante IngraBot

bas.telegram_leePersona (persona, cb) Lee el registro actual de la persona en el servidor
bas.telegram_altaPersona (persona, cb) Envía base de datos, identificador y código de persona a servidor
bas.telegram_enviaComando (comando, bot, cb) Envía comando a Telegram
comando: getMe setWebhook setWebhook88 setWebhook8443 deleteWebhook getWebhookInfo
bas.telegram_enviaMensaje (personas, html, bot, cb) Envia mensaje a username/s o persona/s por Telegram
bas.telegram_montaInca (per, fec, op, cb) op(seg:true,sep:10) > {dl,inca} dl:[{hor, tex | arc,min | x,y}]
seg: con segundos, sep: con separación mínima en m

Sección: js.base

Módulo: ingrid.bases.js

Sesión (Conexión con una base de datos del servidor)

bas.abreBase (meta, cbo) Abre conexión con el servidor, sesion:{servidor,basedatos,usuario,clave,_id}
bas.abreBaseSin (meta, cb) Abre conexión con el servidor (Sin interfaz), {basedatos,usuario,clave} > (bas)
bas.cierraBase (meta=) Cierra la conexión con el servidor
bas.abreBaseActual (basedatos, cb) Abre conexión con el servidor con el mismo servidor, usuario y clave que bas
bas.abreBaseVentana (basedatos) Abre basedatos en nueva ventana con usuario y clave actual
bas.reabreBase (meta, cb) Reabre conexión con la mism basedatos, usuario y clave que bas
Operaciones en la base de datos actual
bas.chequeaBase (meta=) Chequea la base de datos actual y actualiza dClases {chequea:1,cuenta:1}
bas.chequeaIndices (meta, cb) Recrea índices de la base de datos actual, con recrea true los crea {recrea}
bas.exportaBaseBson (meta, cb) Exporta base actual a formato BSON
{basedatos, bson:basedatos+'.bson|.gz', gzip:null} > {}
mongodump -d basedatos -c con --forceTableScan --gzip > bson, si estension 'gz' --gzip ABSOLUTOS
bas.importaBaseBson (meta, cb) Importa base actual a formato BSON
{basedatos, bson:basedatos+'.bson|.gz', gzip:null} > {}
mongorestore -d basedatos --drop --gzip| --archive=bson, si estension 'gz' --gzip
bas.exportaBaseJson (meta, cb) Exporta base actual a formato JSON
{basedatos, json:basedatos+'.json', enJson:null} > {}
mongoexport -d basedatos -c con --jsonArray| > json, si enJson --jsonArray
bas.importaBaseJson (meta, cb) Exporta base actual a formato JSON
{basedatos, json:basedatos+'.json', libera:null, merge:null} > {}
mongoimport -d basedatos -c con --drop|--upsert|--mode merge < json, si libera --drop, si merge --mode merge, sino --upsert
bas.estadoUsos (meta, cb) ¿Existe la base de datos?, > {existe}
bas.estadoMongo (meta, cb) Lee estado de la base de datos, {basedatos} > {stats} debe de estar montada
bas.montaBase (meta, cb) Lee estado de la base de datos, {basedatos} > {stats} debe de estar montada
bas.desmontaBase (meta, cb) Desmonta base del motor de MongoDB, no borra datos, {basedatos} > {}
bas.nuevaBase (meta, cb) Crea nueva base de datos, crea directorio de proyecto y copia 'ingrid-nuevo'
{basedatos}
bas.copiaBase (meta, cb) Copia base de datos y directorio de proyecto
{origen, destino} > {}
bas.renombraBase (meta, cb) Renombra base de datos y directorio de proyecto
{origen, destino} > {}
bas.recuperaBase (meta, cb) Recupera copia BSON sobre nueva base {origenBson,destino}
bas.eliminaBase (meta, cb) Desmonta base del motor de MongoDB y elimina directorio de proyecto, {basedatos} > {}

Sección: js.cab

Módulo: ingrid.cab_bases.js

Con interfaz

bas.nuevaBaseIN (basl, cb) Nueva base de datos, con interfaz dialogoPregunta
bas.copiaBaseIN (base, cb) Copia base de datos con interfaz dialogoEdita
bas.renombraBaseIN (base, cb) Renombra base de datos con interfaz dialogoEdita
bas.exportaBaseJsonIN (base, cb) Exporta base a JSON con interfaz dialogoEdita
bas.exportaBaseBsonIN (base, cb) Exporta base a BSON con interfaz dalogoEdita
bas.importaBaseJsonIN (base, cb) Importa/Agrega/Sobreescribe/Sustituye base de JSON con interfaz dialogoPregunta|Edita
bas.importaBaseBsonIN (base, cb) Importa=Sustituye base de BSONcon interfaz dialogoPregunta|Edita
bas.desmontaBaseIN (base, cb) Desmonta base de datos con interfaz dialogoPregunta
bas.eliminaBaseIN (base, cb) Elimina base de datos con interfaz dialogoPreguntaSN
Múltiples Con interfaz
bas.exportaBasesJsonIN (basl, cb) Exporta múltiples bases de datos a JSON con interfaz dialogoPregunta
bas.exportaBasesBsonIN (basl, cb) Exporta múltiples bases de datos a BSON con interfaz dialogoPregunta
bas.importaBasesJsonIN (basl, cb) Importa múltiples bases de datos de JSON con interfaz dialogoPregunta
bas.importaBasesBsonIN (basl, cb) Importa múltiples bases de datos de BSON con interfaz dialogoPregunta
bas.desmontaBasesIN (basl, cb) Desmonta múltiples bases de datos con interfaz dialogoPregunta
bas.eliminaBasesIN (basl, cb) Elimina múltiples bases de datos con interfaz dialogoPregunta
bas.recuperaBaseIN (basedatos, op, cb) Recupera copia de seguridad por fecha, con interfaz dialogoSeleccion
Varios
bas.creaCopiaSeguridad (basedatos, cb, enjsonl=null) Crea copia de seguridad sin preguntar, nombre = basedatos + fecha
bas.recuperaCopiaSeguridadIN (basedatos, op, cb) Recupera copia de seguridad por fecha, con interfaz dialogoSeleccion
op:{historico,nuevaBase} historico:recupera del histórico de copias de cambios, nuevaBase: recupera sobre la nueva base 'nuevaBase'

Módulo: ingrid.cab_indiceTexto.js

bas.creaIndiceTexto (meta, cb) Crea índice de textos, crea campo de referencias 'indiceRefl'
{pesos={res:10,tex:3,programa:5}} > {results}
bas.eliminaIndiceTexto (meta, cb) Elimina índice de textos {}

Sección: js.clase

Módulo: ingrid.con.js

Busca conceptos

bas.buscaConcepto (val, op, cb) Intefaz Busca concepto o máscara (clase.código·resumen)
op:{cam, creasino:0, resumenDeClaseSiCrea:0, referenciaA:doc, claseDefecto, claseForzada} > cb({doc|error|})
bas.buscaMascara (condicion, op, cb) Intefaz Busca máscara, op:{actual(id),sort({}),cla(cod)} > {doc|error}
bas.buscaConceptoMultiple (h, val, op, cb) Busca valor de entrada de campo a concepto múltiple, > {idl,docl}
bas.buscaMascaraMultiple (h, val, op, cb) Busca mascara de entrada de campo a concpto múltiple, > {valor,docl}
bas.buscaUltimo (id, cb) Lee el último concepto (ordenado por _id) que su _id comienza por 'id' sin números finales (clase.serieDDDD) > {doc}
bas.buscaSiguiente (_id, cb) Busca el siguiente identificador de la serie {_id} > {_id}
busca el último _id que cumple /serie\d*$/ y lo incrementa, llamamos serie a la parte del _id sin números por detrás
esta función no utiliza filtros (amb, tra) para no devolver conceptos existentes en otros ámbitos o grupos de trabajo
bas.buscaTexto (texto, condicion, cb) Busca texto en resumen de conceptos > leeConceptos
Lee conceptos
bas.existeConcepto (_id, cbSi, cbNo) ¿Existe el concepto con identificador 'id'?. Si existe llama a cbSi(), sino llama opcionalmente a cbNo()
bas.leeConcepto (meta, data, cb) Lee un concepto
bas.leeConcepto2 (meta, cb, _sincomun) Lee un concepto extendido (incluye referencias)
bas.leeConceptos (meta, data, cb) Lee múltiples conceptos
bas.leeConceptosPageCb (meta, data, cbData, cbFin) Lee múltiples conceptos por páginas
bas.cuentaConceptos (meta, cb) Cuenta conceptos, {find} > {docn}
Graba conceptos
bas.buscaCreaConcepto (id, op, cb) Busca id, crea si no existe, {claDefecto} > {doc}
bas.creaSiguiente (mascara, op, cb) Busca el siguiente identificador de la serie {_id} > {_id} y presenta diálogo para crearlo
busca el último _id que cumple /serie\d*$/ y lo incrementa, llamamos serie a la parte del _id sin números por detrás
esta función no utiliza filtros (amb, tra) para no devolver conceptos existentes en otros ámbitos o grupos de trabajo
op:{nopregunta,...campos_adicionales}
bas.creaConceptos (meta, cb) Crea concepto, error si existe, sin eventos
doc|docl|{doc|docl, ordered} (con ordered=false no se para al dar un error)
bas.recreaConceptos (meta, cb) Crea concepto, regraba todo si existe, sin eventos
doc|docl|{doc|docl}
bas.grabaConceptos (meta, cb, _que='grabaConceptos') Graba campos de cada doc, crea concepto si no existe, sin eventos
doc|docl|{doc|docl}
bas.eliminaConceptos (meta, cb) Elimina conceptos, sin eventos
{_id|_idl|find|doc|docl}
bas.creaConcepto (doc, cb) Crea concepto, error si existe, > creaConceptos
bas.recreaConcepto (doc, cb) Crea concepto, elimina si existe, > recreaConceptos
bas.grabaConcepto (doc, cb) Sobreescribe concepto, creasino, > grabaConceptos
bas.eliminaConcepto (doc, cb) Elimina concepto, > eliminaConceptos
bas.grabaConcepto_comun (doc, cb) grabaConceptos | grabaConceptosComun
bas.renombraConcepto (...al) Elimina concepto, > eliminaConceptos
bas.renombraConceptos (meta, cb) Cambia identificadores, {id1,id2|id1l,id2l,existenDestinos} o (id1,id2,cb) o (idl1,idl2,cb)
si existenDestinos admite la exitencia de destino y los fusiona
bas.recodificaConceptos (meta, cb) Cambia identificadores de forma secuencial, {find, tam}
bas.fusionaConceptos (meta, cb) Fusiona concepto 1 en 2 y elimina 1, copia campos 1 no existentes en 2, {a|id1,b|id2} > {doc}
bas.creaConceptoDeClase (clacod, cb) Crea el concepto siguiente de la clase, con interface
Procesando eventos
bas.creaConceptoEV (doc, cb) Crea concepto procesando eventos > creaConceptos
bas.renombraConceptoEV (doc, id2, op, cb) Renombra concepto procesando eventos > renombraConceptos
bas.eliminaConceptoEV (doc, cb) Elimina concepto procesando eventos > eliminaConcepto
Con interfaz
bas.buscaConceptoIN (titulo, titular, op, cbAcepta, cboCancela) op:{creasino:0, resumenDeClaseSiCrea:0, referenciaA:doc, claseDefecto, claseForzada} > ({doc|})
Diálogo busca concepto (<ingrid.db.dc)
bas.creaConceptoIN (id, op, cb, cbCancela) Intefaz para crear concepto: clase.código [resumen], {cla}
bas.copiaConceptoIN (doc, cb) Copia concepto con interfaz > creaConceptoEV
bas.eliminaConceptoIN (doc, cb) Elimina concepto con interfaz > eliminaConceptoEV
bas.eliminaConceptosIN (docl, cb) Elimina conceptos con interfaz > eliminaConceptos
bas.cambiaIdentificadorIN (doc, val, op, cb) Renombra concepto con interfaz, op{claseForzada:0} > cb({doc|error|})
bas.renombraConceptoIN (doc, id2, cb) Renombra concepto con interfaz

Módulo: ingrid.doc.js

ingrid.doc.soyOrigen (doccla) Soy el creador del documento (yo soy la entidad defecto de la base de datos) {sol:1,ped:1,ofev:1,albv:1,facv:1}
bas.cadenaDocumentos (doc, rec, cbeo) Cadena de líneas de documentos > (err,docl,recs)
Dado un documento y un recurso, busca en la cadena de líneas de documentos(docant,docsig)
recs: Recursos generales y particulares asociados al recurso principal (mat > lot, equ > maq, ...)

Módulo: ingrid.gra.js

Imágenes de conceptos de tipo gráfico
tam: (0)baja (1)media (2)alta (3)original,

bas.esGrafico (doc) ¿Es de clase o subclase gráfico?; subclase de gra; doc o cla
bas.caminoGrafico (gra, tam) Camino del gráfico para un tamaño, de un concepto gráfico o del primer gráfico de un concepto
<arc> | ima/[media|alta|original]/<cod>
bas.urlGrafico (gra, tam, conDate) URL del gráfico para un tamaño de un concepto gráfico o del primer gráfico de un concepto
CON SESIÓN, > servidor+'/webservice/'+orden+'/'+cod+'?'+meta, conDate agrega fecha y hora actual como parámetro para no utilizar cache
bas.urlGraficoHttp (gra, tam=0, conDate) URL del gráfico para un tamaño de un concepto gráfico o del primer gráfico de un concepto
bas.htmGrafico (gra, tam) HTML del gráfico para un tamaño de un concepto gráfico o del primer gráfico de un concepto
Envía imágenes al servidor
bas.subeGrafico (meta, cb) CACHE Sube gráfico al servidor desde el sistema local de archivos, urls, canvas ....
bas.subeGraficos (meta, cb) Sube múltiples imágenes al servidor desde el /sistema local de archivo o urls
bas.agregaGrafico (doc, meta, cb) Sube gráfico al servidor y agrega a documento doc
Crea miniatura del gráfico (incluye formatos de Inca) {id|idl|gra|gral} > {}
bas.agregaGraficos (doc, meta, cb) Sube gráfico y agrega a doc
Manipulación masiva de imágenes
bas.rotaGraficos (meta, cb) Rota y rehace metadatos y miniatura
bas.leeExifGrafico (meta, cb) Lee metadatos del gráfico (exif)
bas.compruebaArchivosGraficos (meta, cb) Comprueba que todos los archivos en alta tienen concepto gráfico asociado
(crea si no) {} > {body}
bas.compruebaReferenciasGraficos (meta, cb) Comprueba que todas las referencias a imágenes tienen concepto gráfico asociado (crea si no)
{find||idl} > {body}
bas.compruebaMetadatosGraficos (meta, cb) Comprueba metadatos de conceptos imágenes (modifica originales si necesario)
{find|docl} > {log,modl}
bas.compruebaMiniaturasGraficos (meta, cb) Comprueba miniaturas de conceptos imágenes (crea o recrea miniaturas si necesario)
{find,recrea} > {body,incaGral}
bas.eliminaMiniaturasGraficosObsoletas (meta, cb) Elimina miniaturas si gráfico en basedatos (puede estar en alta o no)
{} > {body}
bas.preparaGrafico (meta, cb) Prepara un gráfico para presentar o imprimir (formato dataURL),
bas.preparaGraficos (meta, cb) Prepara múltiples imágenes para presentar o imprimir (formato dataURL),
Independiiente de BD

Módulo: ingrid.pro.js

Librería

bas.resumenParametro (pro, cod, val) Resumen de parámetro tipo clasificación (#) cod, con el valor (opción) val

Módulo: ingrid.pro_procesa..js

bas.procesaProcedimiento (pro, vals, op, cb, inicia) Procesa el procedimiento (pro) con los parámetros (vals),
proid|pro|doc2 op:{bas,eve,docs,origen,contextual, dialogo,fProcesa}, cbo:callback opcional, inicia:pasa la procedimiento al presentar
ejecuta pro.programa:"function(bas,pro,vals,cb){...}" pro:{...,pro.eve(evento), pro.docs(cache), contenedor(solo desde interfaz)}
Si contextual vals.contextual continene el identificador y pro.contextual el documento
bas.procesaProcedimiento2 (pro2, pro, vals, cb) Ejecuta procedimiento desde procedimiento,
bas.leeLibreria (proid, cb) Sinónimo de procesaProcedimiento
bas.buscaProcedimento (id, cb) Busca procedimento en base actual o si no en base común > (doc)
bas.procesaMultiples (bus, proid, vals, cb) (bus|docl, proid|pro, vals{paginaForzada:1}); proid admite comun... > {html} mezcla
Genera un único HTML, procesando multiples conceptos con un procedimiento que admite contectual|con y retorna html

Módulo: ingrid.tar_medidas.js

bas.medidas_impresor (doc2, cb) Tablas de medidas para imprimir > bas.medidas_carga > {tablas} tabla:{tit,caml,datll}
bas.medidas_carga (doc2, cb) Carga medidas de un documento extendido
> bas.tareas_medidas > {medl,docs,numinc,numreq} med:{ope(id),esp(id),bin(id),medl:[{cod,val,obs,inc}] despliege intermedio

Módulo: ingrid.usu.js

bas.cambiaClaveUsuario (meta, cb) Cambia clave del usuario actual, o (clave,nueva,cb); {clave,nueva}

Sección: js.impresor

Módulo: ingrid.impresor3.js

bas.Impresor3 (imp) Objeto impresor, ayuda para realizar informes en HTML, extiende el objeto ingra.Impresor3
{pro,doc2, tema,pagina, title,style,script}) imp.h1 imp.table ... imp.montaHtml(cb)
imp.cabecera () Cabecera, salta línea
Cabecera izquierda: imagen o icono1 de la base o 'ingrid'
Cabecera central: imagen2 o icono2 de la base o 'ingrid' o sobretitulo o resumen proyecto / titulo o resumen procedimiento / subtitulo o resumen concepto si existe, si son null no presentan, pueden ser vectores
Cabecera derecha: imagen3 o icono3 de la base o 'ingrid' o conFecha o fecha actual / conCodigo o código procedimiento / conPagina o página actual, si son null no presentan
Si existe icono2 y no queremos usarlo icono2='-' (igual icono3)
imp.imagen (pad, url, style, properties) Imagen url|gra|con.gral[0]|'ingrid'|'ingra'
imp.imagenes () Imágenes del concepto, {doc|gral,tit,num,max,conAlta}
imp.inca (op, style, properties) Mapa del concepto
imp.igra (igra, style, properties) Gráfica de datos de búsqueda o tabla, igra:{pad,busqueda,tabc,titulos,campos,tip:4,conLey:2,...}
imp.concepto (op, style, properties) Ficha del concepto, {pad,doc2,sincab}
imp.conceptos (tab, style, properties) Lista de conceptos, {pad,tit,bus|docl,caml} > tabla
[tit,caml],docl,[conOrden:camcod}
imp.relaciones (op, style, properties) Tablas de relaciones del concepto, {pad,doc2,conrel}
imp.referencias (op, style, properties) Tablas de referencias del concepto, {pad,doc2,conref}
imp.lineasdetalle (op, style, properties) Tabla de líneas de detalle de documentos o almacenes, {pad,doc2,conrel}
imp.medidas (op, style, properties) Tablas de medidas y consumos de la tarea u operación, {pad,doc2}
imp.montaHtml (cb) Monta el HTML de todos los datos cargados en imp
> {html}, con shiftKey presentaPdf, con ctrlKey grabaPdf, con altKey agregaGraficoPdf
imp.preparaTabla (tabla) Prepara campos de la tabla con docl o datll
{caml,docl,datll, vertical,sinvacios, refcamcod,campos,numera}) > imp.preparaTabla > {...caml,doc2} ids
caml: null o "-..." o "cod,res,tip,tam,style,properties ..." o [{cod,res,tip,tam,style,properties}]
conIcono, conCodigo(en vez de identificador)
imp.grabaHtml (arc, html, cb) Graba archivo HTML, o (arc,cb) > {titulo,arc}
botonGrabaHtml
Salida PDF
imp.grabaPdf (meta, cb) Graba archivo PDF, o {arc,html} > {titulo,arc}
botonGrabaPdf
Agrega a BD
imp.agregaPdf (doc, op, cb) Agrega arhivo PDF a documento o (doc,cb), {cod,html} > {titulo,arc} 'ima/alta/<id>.pdf'
imp.presentaPdf (doc, cb) Presenta PDF temporal < 'ima/alta/<id>.pdf'
imp.agregaPdfProIN (op, cb) Agrega arhivo PDF a procedimiento, con diálogo, {cod,html,pos:0,regraba:1} > {titulo,arc}
Temporal
imp.grabaPdfTmp (data, cb) Graba PDF temporal > 'ima/tmp/<id>.pdf'
imp.presentaPdfTmp (cb) Presenta PDF temporal < 'ima/tmp/<id>.pdf'
jsPDF
imp.grabaJsPdf (arc, P, cb) Graba archivo PDF con jsPDF, o (P,cb) > arc|'ima/tmp/a.js.pdf'
imp.presentaJsPdf (arc, cb) Presenta archivo PDF de jsPDF, o (cb) < arc|'ima/tmp/a.js.pdf'
Varios
imp.grabaCsv (arc, csv, cb) Graba archivo CSV, o (csv,cb) csv:{titulo:'',campos:[{cod}],lineas:[[]]} > {titulo,arc}
botonGrabaCsv