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.copiaClaseDialogo (dcla, cb) | Pregunta si quiere copiar los conceptos de la clase actual en otra nueva o existente cla:origen pregunta destino |
bas.renombraClaseDialogo (dcla, cb) | Pregunta si quiere cambiar el código de la clase actual y de sus conceptos |
bas.eliminaClaseDialogo (dcla, cb) | Pregunta si quiere eliminar la clase actual y sus conceptos |
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 |