====== NÉFELE for HARBOUR ======
**Néfele for Harbour** es una librería de clases con la que desarrollar aplicaciones Web en tiempo récord, basada en
[[https://harbour.github.io/|Harbour]] utilizando su entorno de trabajo, sintaxis y acceso a bases de datos [[https://en.wikipedia.org/wiki/.dbf|DBF]],
[[https://www.sqlite.org/index.html|SQLite]], [[https://mariadb.org/|MySql/MariaDB]], [[https://es.wikipedia.org/wiki/Microsoft_SQL_Server|SQL Server]], [[https://firebirdsql.org/|FireBird]], [[https://www.postgresql.org|PostgreSQL]] y MSAccess.
**Néfele** permite mediante una serie de objetos ([[controles:wpanel|paneles]], [[controles:wlabel|textos]], [[controles:wbutton|botones]], [[controles:wedit|campos de edición]], [[controles:wlistview|listas de datos]], etc.)
el montaje de una aplicación Web ejecutable en un navegador cualquiera y que además sea responsive.
Utiliza para ello el framework [[https://materializecss.com/|Materialize]] basado en Material design como base aunque no renuncia a incorporar otras extensiones para enriquecer su aspecto y mejorar su usabilidad como los mensajes de [[https://sweetalert2.github.io/|Sweet Alert]], la creación de PDF con [[https://github.com/MrRio/jsPDF|jsPDF]], las notificaciones Push con [[https://onesignal.com/|OneSignal]], los tour informativos con [[http://iamdanfox.github.io/anno.js/|Anno.js]], el visualizador de PDF [[https://mozilla.github.io/pdf.js/|PDF.js]], la inclusión de [[controles:wqrcode|códigos QR]] en nuestras páginas o la creación de [[componentes:wXLSXReport|Hojas de Calculo XLSX]].
**Néfele** es el fruto de la colaboración de un grupo de programadores, usuarios de [[https://Xailer.com|Xailer]], que viendo la necesidad de expandir las aplicaciones de escritorio a la Web han llegado a esta solución totalmente operativa y extremadamente sencilla.
===== F.A.Q. PREGUNTAS FRECUENTES =====
[[nefelefaq|Consulta aquí las preguntas frecuentes de los usuarios.]]
===== Controles =====
* [[controles:wArrayBrowse]]
* [[controles:wItemColBrowse]]
* [[controles:wAttachFile]]
* [[controles:wBadge]]
* [[controles:wBevel]]
* [[controles:wBevelFooter]]
* [[controles:wRow]]
* [[controles:wButton]]
* [[controles:wCard]] 🚧
* [[controles:wCheckBox]]
* [[controles:wChips]]
* [[controles:wComboBox]]
* [[controles:wItemComboBox]]
* [[controles:wControl]] 🚧
* [[controles:wDatePicker]]
* [[controles:wEdit]]
* [[controles:wFileOpenDlg]]
* [[controles:wFloatingBtn]]
* [[controles:wItemFloatBtn]]
* [[controles:wForm]]
* [[controles:wIcon]]
* [[controles:wImage]] 🚧
* [[controles:wFlexItem]] 🚧
* [[controles:wJsonClass]] 🚧
* [[controles:wLabel]]
* [[controles:wListView]] 🚧
* [[controles:wItemListView]] 🚧
* [[controles:wMask]] 🚧
* [[controles:wMsgAlert]] 🚧
* [[controles:wPanel]] 🚧
* [[controles:wParallax]] 🚧
* [[controles:wItemParallax]] 🚧
* [[controles:wQrCode]]
* [[controles:wRadioMenu]] 🚧
* [[controles:wRange]] 🚧
* [[controles:wRebar]]
* [[controles:wRepeater]] 🚧
* [[controles:wSeparator]]
* [[controles:wSideNav]] 🚧
* [[controles:wItemSideNav]] 🚧
* [[controles:wSimpleMenu]] 🚧
* [[controles:wSlider]] 🚧
* [[controles:wItemSlider]] 🚧
* [[controles:wSplitButton]] 🚧
* [[controles:wItemFloatBtn]]
* [[controles:wStyle]] 🚧
* [[controles:wStyleItem]] 🚧
* [[controles:wSwitch]]
* [[controles:wTabs]] 🚧
* [[controles:wItemsTabs]] 🚧
* [[controles:wTags]] 🚧
* [[controles:wTimePicker]]
* [[controles:wToast]] 🚧
* [[controles:wWaitOn]] 🚧
* [[controles:tWebPage]]
🚧 En construcción; Solo esta documentada la declaración de la Clase.\\
✨ Control en desarrollo aún no publicado.
===== Controles creados por los Usuario (Contrib)=====
* [[contrib:wChart]]
* [[contrib:wDataTable]]
* [[contrib:wCodeScanner]]
===== Propiedades =====
* [[propiedades:aWidth]]
* [[propiedades:aOffset]]
* [[propiedades:aParams]]
* [[propiedades:cAjaxBevel]]
* [[propiedades:lAjaxWaitOn]]
* [[propiedades:cAjaxText]]
* [[propiedades:cClassId]]
* [[propiedades:cIcon]]
* [[propiedades:cId]]
* [[propiedades:cImage]]
* [[propiedades:cOnClick]]
* [[propiedades:lEnabled]]
* [[propiedades:nRowId]]
* [[propiedades:oHtml]]
* [[propiedades:oStyle]]
* [[propiedades:oParent]]
===== Componentes =====
* [[componentes:wAddFunction]]
* [[componentes:wAdoConnect]]
* [[componentes:wStyle]]
* [[componentes:Coordenadas Gps]]
* [[controles:wManifest]] 🚧
* [[controles:wPDFReport]]
* [[componentes:wXLSXReport]] ✨ **Proximamente en Néfele 0.5** ✨
/* * [[componentes:wHtml]] */
===== Métodos Comunes =====
* [[metodos:Assert]]
* [[metodos:Create]]
* [[metodos:FullHtml]]
* [[metodos:LogDebug]]
* [[metodos:LogError]]
/*
* [[metodos:oParentForm]]
* [[metodos:oParentWeb]]
*/
===== Funciones Generales =====
^Función ^Descripción ^
|[[funciones:AddLinkHtml|nfl_AddLinkHtml]] | Crear Link Html |
|[[funciones:AddLinkTel|nfl_AddLinkTel]] | Crear Link de Teléfono |
|[[funciones:nfl_AllString]] | Convierte todo a carácter y ajusta a un tamaño |
|[[funciones:ArrayColumn|nfl_ArrayColumn]] | Nos extrae una columna de un Array |
|[[funciones:nfl_ArrayToCookie]] | Codifica un Array para ser utilizado en una Cookie |
|[[funciones:nfl_ArrayDistinct]] | Devuelve un array al que se le quitan los duplicados filtrando por una columna. |
|[[funciones:nfl_Array2Char]] | Convierte un array a una cadena de caracteres separada por comas u otro separador. |
|[[funciones:nfl_Array2Char|nfl_ArrayToChar]] | ::: |
|[[funciones:AsciiHTML|nfl_AsciiHTML]] | Conversión de Cadenas/Array ANSI a UTF8 |
|[[funciones:CallAutoForm|nfl_CallAutoForm]] | Crear una llamada Automática a nuestro CGI o a una URL |
|[[funciones:CacheFile|nfl_CacheFile]] | Tratamiento de páginas cacheadas en el servidor |
|[[funciones:nfl_CalcOffsetSQL]] | Esta función devuelve el Offset necesario para paginar una consulta SQL |
|[[funciones:nfl_Char2Array]] | Conversión de una Cadenas en Array según el delimitador indicado|
|[[funciones:nfl_Char2Array|nfl_CharToArray]] | ::: |
|[[funciones:nfl_ChkCookie]] | Nos valida un Cookie |
|[[funciones:nfl_ChkFormUID]] | Devuelve .T. si el wformuid es valido y se puede procesar el wForm |
|[[funciones:nfl_CleanTag]] | Esta función limpia de una cadena el tags pasados |
|[[funciones:nfl_CleanTags]] | Esta función limpia de una cadena todos los tags pasados |
|[[funciones:nfl_ClrMaterialize]] | Localiza colores Materialize o su equivalente Hexadecimal |
|[[funciones:nfl_Console]] | Envía Mensajes a NefeleConsole |
|[[funciones:nfl_Comillas]] | Encapsula la cadena entre comillas simples |
|[[funciones:nfl_Comillasd]] | Encapsula la cadena entre comillas dobles |
|[[funciones:nfl_CookieToArray]] | Descodifica un Array recibido en una Cookie |
|[[funciones:nfl_CloseAllItemLV]] | Crea el código JS para cerra todos los wItemListView de un wListView Collapsable/Expandable |
|[[funciones:nfl_CloseModal]] | Nos genera el código JavaScript necesario para cerrar una ventana modal |
|[[funciones:nfl_CloseSideNav]] | Nos genera el código JavaScript necesario para ocultar el wSideNav |
|[[funciones:nfl_CreateTimeOut]] | Crear un evento Timer en la página |
|[[funciones:nfl_DefaultSecurityPolicy]] | Configuración básica de politicas de seguridad seguridad |
|[[funciones:nfl_DirectOutputMessage]] | Creación y envió de una página Básica con un mensaje |
|[[funciones:nfl_DToJSD]] | Convierte una fecha Harbour a formato JavaScript .toString() |
|[[funciones:nfl_DToJSDS]] | Convierte una fecha Harbour a formato JavaScript .toDateString() |
|[[funciones:nfl_DownloadFile]] | Creación de un Link para la descarga de un fichero disponible en htdocs |
|[[funciones:nfl_EmbedFile]] | Código HTML para embeber un fichero en un wBevel |
|[[funciones:nfl_EmbedJSon]] | Crea el HTML necesario para embeber una visualización de un fichero JSon |
|[[funciones:nfl_EmbedPDFjs]] | Crea el HTML necesario para embeber una llamada al visor PDFjs |
|[[funciones:nfl_EmbedXML]] | Crea el HTML necesario para embeber una visualización de un fichero XML |
|[[funciones:nfl_ExtractStr]] | Extrae una subcadena contenida entre dos cadenas |
|[[funciones:nfl_FileDate]] | Extraer la Fecha de creación de un Fichero |
|[[funciones:nfl_FillForm]] | Facilita la actualización de un wForm ya existente por AJAX |
|[[funciones:nfl_GeneraTmp|nfl_GetTmpFileName]] | Genera el nombre de un fichero temporal en base a un nombre de fichero |
|[[funciones:nfl_IsDate]] | Nos indica si el valor es una fecha correcta en xBase |
|[[funciones:nfl_IsTime]] | Nos indica si el valor es una hora correcta en xBase |
|[[funciones:nfl_IsBase64]] | Nos indica si el valor es una cadena en formato Base64 |
|[[funciones:nfl_IsDebug]] | Nos indica si se esta ejecutando el CGI en modo Debug |
|[[funciones:nfl_JSDtoD]] | Convierte una Fechas en formato JavaScript a xBase |
|[[funciones:LoadCacheFile|nfl_LoadCacheFile]] | Recuperar una página cacheada en el servidor|
|[[funciones:nfl_MimeExt]] | Retorna la extensión de fichero en base a su tipo Mime |
|[[funciones:nfl_MimeType]] | Retorna el tipo Mime de un fichero según su extensión |
|[[funciones:nfl_MsgSave]] | Crea un fichero secuencial de mensajes |
|[[funciones:nfl_MsgSesionCaducada]] | Cadena y AutoEvento para notificar la sesión como Caducada |
|[[funciones:nfl_OpenItemListView]] | Genera el JS necesario para abrir un ItemListView |
|[[funciones:nfl_OpenModal]] | Apertura y Cierre de wBevel Modal |
|[[funciones:nfl_OpenSideNav|]] | Apertura y Cierre del SideNav |
|[[funciones:nfl_OnlyFileName]] | Nos retorna el nombre de un fichero sin extensión ni Path |
|[[funciones:nfl_PreloadCss]] | Fuerza la precarga de CSS |
|[[funciones:nfl_ProgName]] | Nos retorna el nombre del exe sin extensión ni Path |
|[[funciones:nfl_ServerUrl]] | Nos devuelve la URL que se ha utilizado para llamar a nuestro CGI |
|[[funciones:nfl_ShowSS]] | Ordena la Presentación del ShadowSheet de la página |
|[[funciones:nfl_SingleUri]] | Nos devuelve a URL que se ha utilizado para llamar a nuestro CGI |
|[[funciones:nfl_SqlDate]] | Convierte una Fecha en formato xBase a formato SQL |
|[[funciones:nfl_SqlDatetime]] | Convierte una Fecha y Hora en formato xBase a formato SQL |
|[[funciones:nfl_RefreshBadge]] | Nos genera el código JS para actualizar el texto de un wBadge |
|[[funciones:nfl_RefreshMemo]] | Refresca el wEdit Memo con el contenido |
|[[funciones:nfl_RefreshSwitch]] | Fuerza el Refresco de los wSwitch de una página una vez actualizado su contenido por AJAX |
|[[funciones:nfl_RefreshText]] | Fuerza el Refresco de los wEdit una vez actualizado su contenido por AJAX |
|[[funciones:nfl_ResetMemo]] | Reseteo de wEdit Memo por AJAX |
|[[funciones:nfl_ToClipBoard]] | incrusta un Botón de envío al portapapeles en cualquier texto. |
|[[funciones:nfl_UpdateById]] | Retorna el código necesario para actualizar un control por AJAX |
|[[funciones:nfl_URLPDFjs]] | Crea la URL necesaria para llamar al visor PDFjs |
|[[funciones:nfl_ValHora]] | Nos valida que la cadena pasada corresponde a una hora en formato xBase |
|[[funciones:nfl_ValToJS]] | Prepara cualquier tipo de dato apara incluirlo en una sentencia JS |
|[[funciones:nfl_ValToSql]] | Adapta cualquier tipo de dato a un formato admisible por SQL |
✨ Función disponible próximamente.
/*
✨**v0.4**✨
*/
===== Funciones para Bases de Datos =====
^Función ^Descripción ^
|[[utilidades:nfl_GetDriversODBC]] | Nos retorna un Array con los Driver ODBC de un Motor de BBDD instalados|
|[[utilidades:nfl_SqlConnect]] | Nos retorna una conexión con una BBDD |
===== Funciones útiles en la creación de Controles Néfele =====
^Función ^Descripción ^
|[[funciones:nfl_ArrayColors]] | Nos devuelve un array con todos los colores de Materialize y su equivalente Hex. |
|[[funciones:nfl_CheckClr]] | Valida el color y nos retorna una clase valida |
|[[funciones:nfl_CheckImage]] | Validación de Imagen |
|[[funciones:nfl_CreateUniqueId]] | Creación de cadena única para UniqueId |
|[[funciones:nfl_CheckValue]] | Comprueba el valor en un array de valores validos |
|[[funciones:nfl_Deprecate]] | Genera un aviso de Descatalogación de una función, método, propiedad, etc.. |
|[[funciones:nfl_FindParentClass]] | Localiza un oParent del control de una clase |
|[[funciones:nfl_FiltroXSS]] | Nos filtra la cadena par evitar la inyección de código |
|[[funciones:nfl_GetMeasureType]] | Retorna la unidad de medida de la página |
|[[funciones:nfl_lOkNavegador]] | Valida si el Navegador es compatible con MaterializeCSS |
|[[funciones:nfl_MergeParam]] | Fusiona los aParam de dos aParams sin duplicados |
|[[funciones:nfl_NavegadorNoCompatible]] | Página de aviso de navegador no compatible |
|[[funciones:nfl_PutIcon]] | Añade un Icono a nuestro control |
|[[funciones:nfl_ReplaceChars]] | Reemplazo por lotes de caracteres |
|[[funciones:nfl_ReplaceClrMaterialize]] | Nos devuelve el valor Hexa RGB de un Color Materialize, si no existe nos devuelve lo enviado |
|[[funciones:nfl_StringToEdit]] | Filtrado de cadena para evitar XSS |
|[[funciones:nfl_Tag]] | Encapsulado de cadenas entre Tag |
|[[funciones:nfl_ToWeb]] | Tratamiento de parámetros con encriptación |
|[[funciones:nfl_ToWeb]] | ::: |
|[[funciones:nfl_UpdateArray]] | Fusiona dos Array con los elementos no coincidentes |
===== Técnicas =====
* [[nefele:iniciar|Iniciar una Aplicación Néfele]]
* [[nefele:ocgi|El objeto oCGI]]
* [[nefele:Application|El objeto Application]]
* [[nefele:constantes|Constantes para Néfele]]
* [[tecnicas:Ajax|Utilizando Ajax con Néfele]]
* [[tecnicas:wo|El Acrónimo :WO]]
* [[tecnicas:urlamigable|URL Amigables o Semántica]]
* [[tecnicas:debugger|El Modo Debug]] 📰 [[tecnicas:debugger#Modo Debug en Producción]]
* [[tecnicas:ventana modal|Ventanas modales]]
* [[tecnicas:apirest|Utilizando Néfele para crear Servicio API REST]]
* [[tecnicas:cachep|Cacheando páginas]]
* [[tecnicas:dbconnect|Acceso a BBDD (MySql, MariaDB, SQLServer, SQlite, Firebird, PostgreSQL y MSAccess)]]
* [[tecnicas:pdfviewer|Visualización y descarga de informes/documentos PDF]]
* [[tecnicas:pdfjs|Implementación del visualizador de PDF]] [[https://mozilla.github.io/pdf.js/|PDF.js]] [[tecnicas:pdfjs|para Néfele]]
* [[tecnicas:pwa|Progressive Web App]]
* [[tecnicas:session|Uso de Sesiones y UserData]]
===== Utilidades =====
* [[utilidades:nefelewizard|Néfele Wizard]]
* [[utilidades:nefeleconsole|Néfele Console]]
/*
===== AddOn controles complementarios ====
* [[addon:GChartPie]] Utilización de GoogleChart para realizar gráficos de tartas.
* [[addon:NP_MariaDB]] MariaDB/MySQL utilizando los DataSource de Xailer Enterprise desde el CGI con configuración web.
* [[addon:NP_SQLServer]] SQL Server utilizando los DataSource de Xailer Enterprise desde el CGI con configuración web.
* [[addon:NP_SQLlite]] SQLite utilizando los DataSource de Xailer Enterprise desde el CGI con configuración web.
*/
===== Enlaces de interés =====
Aquí iremos colocando aquellas cosas que encontremos por internet, o que nos comente algún usuario y que puedan ser de interés para futuras mejoras de Néfele o para proyectos individuales.
* [[enlaces:html|Información que nos ha sido muy útil]]
* [[enlaces:Paneles administración]]
* [[enlaces:Folders]]
/*
===== Tag Cloud =====
~~TAGCLOUD~~
*/