Foros Néfele 4 Harbour › Foros › Noticias y novedades › [Nefele] Changelog
Etiquetado: Changelog
- Este debate tiene 20 respuestas, 2 mensajes y ha sido actualizado por última vez el 3 años, 8 meses por Alfredo Sanz. This post has been viewed 1275 times
-
AutorEntradas
-
-
11-03-2021 a las 21:07 #1747Alfredo SanzSuperadministrador
REV 2110
11-03-2020
+ source\zClassNefele\SimpleMenu.prg
Clase que hereda de SideNav para la creación de menús
PROPERTY cIcon INIT "star" // icono de fontawesome a colocar a la izquierda de cada opción
* include\css\nefelecore.css
// Incluidas definciones para utilizar el modo lCompress de los wForm
* source\zClass\source\Form.prg
+ PROPERTY lCompress INIT .F. // Habilita el modo de tamaño comprimido
* source\zClass\source\Edit.prg
+ PROPERTY lCompress // Habilita el modo de tamaño comprimido, por defecto utiliza el definido en wForm
* source\zClass\source\Combobox.prg
+ PROPERTY lCompress // Habilita el modo de tamaño comprimido, por defecto utiliza el definido en wForm
* source\zClass\source\FileOpenDlg.prg
+ PROPERTY lCompress // Habilita el modo de tamaño comprimido, por defecto utiliza el definido en wForm08-03-2020
* samples\Nefele_Samples\
+ Incluidos ejemplos cpn wPDFReports* source\zClass\source\Cgi.prg
! La estructura que retorna GetCodefCookie incluye un campo 'Value' que comparte contenido con el campo 'Valor'
para ir internacionalizando el tema, hay que ver como podemos avisar de que ese campo va a desaparecer
!! source\zClass\source\WebPage.prg
!! PROPERTY lPDFReports remplaza a ljsPDF
* source\zClass\source\SplitButton.prg
% Se ha homogeneizado con wButton para que respete aWidth y aOffset
% PROPERTY lCenter // Se mantiene por compatibilidad con versiones anteriores
+ PROPERTY cPosition INIT xc_Center // Alineación con respecto a su contenedor
+ PROPERTY lContainer INIT .T. // Contenedor interno del botón
% oIconMenu por defecto pasa a ser "arrow_drop_down_circle"* source\zClass\source\PDFReport.prg
! Homogeneizadas todas las propiedades de Color para que funcionen como en cualquier control, admitiendo
colores materialize, en Hexadecimas RGB y numerico07-03-2021
* source\zClass\source\Webpage.prg
+ PROPERTY lPDFObject INIT .T. // Utilizaremos PDFObject para la gestión de PDF embebidos
* source\zClass\source\PDFReport.prg
¡¡ Se han cambiado el orden de los parametros de todos los metodos para que esten primero los imprecindibles
+ METHOD QrCode( nLeft, nTop, nWidth, nHeight, cText, cEccLevel, nClrPane, nClrText, nMargin, nModuleSize, lAuto )
// Para incluir Códigos QR en los report.
+ PROPERTY lPDFObject INIT .T. // Por defecto se utilizara PDFObject para el embebido de PDF01-03-2021
* samples\Nefele_Samples\
+ Ejemplo Generación Códigos QR
* source\zClass\source\Webpage.prg
+ PROPERTY lQrJS2 // Inicializa la página para que pueda contener Códigos QR
+ source\zClass\source\QrCode.prg // Clase para la creación de códigos QR
* source\NefeleCore.prg
+ FUNCTION nfl_MakeQrCode() // Funciones para la creación de códigos QR
* \samples\Nefele_Samples\
+ Ejemplos uso pdf
+ \samples\EnviarPdf
Ejemplo de uso pdfs* include\core\css\ext-materialize.css
+ .card-content { overflow: auto; } // Para evitar que el contenido se salga
* source\zClass\source\SideNav.prg
+ Habilitadas las propiedades relacionadas con ShadowSheet ( lShadowSheet, cShadowSheetTitle y cShadowSheetSubTitle )
se aplica a todas la opciones del Menú que llaman a nuestro CGI. Las que ejecuten JS o href no tienen ShadowSheet
* source\zClass\source\Cgi.prg
+ PROPERTY aSecurityPolicy INIT {} // Nos permite añadir Parametros de Seguridad en el Header del envío
* source\NefeleFunction.prg
+ FUNCTION nfl_DefaultSecurityPolicy( lHTTPS ) // Configuración basica de seguridad con las pruebas que hemos realizado -
15-02-2021 a las 15:04 #1718Alfredo SanzSuperadministrador
REV 2107
* source\zClass\source\NefeleControl.prg
Aceleradores de teclado ( ej. alt + a ). (De momento solo en edit y button)
+ PROPERTY cShortCut // ::cSortCut= "Alt+A"
+ PROPERTY cShortCutAction INIT "click"* source\zClass\source\wArrayBrose.prg
! Comprueba si la cabecera o las celdas llevan icono comparando con "icon:", antes lo hacia con "icon" y fallaba* source\zClass\source\Edit.prg
% si ::SetSearch() y ::nTimeOut > 0, al pulsar la x lanza el evento de cambio con texto := "" -
25-01-2021 a las 11:31 #1702Alfredo SanzSuperadministrador
REV 2103
21-01-2021
* source\zClass\source\ItemColBrowse.prg
+ PROPERTY lDefault INIT .f. // Utilizar si los datos nos llegan ordenados ya por esta columna
+ PROPERTY lSort INIT .t. // La columna se puede ordenar
+ PROPERTY lSearch INIT .t. // La columna tiene caja de búsqueda* source\NefeleFunctions.prg
! FUNCTION nfl_CallAutoForm // No añadia ; al final, por lo que fallaba si se le adjuntaban otras funciones- Esta respuesta fue modificada 3 años, 10 meses por Alfredo Sanz.
-
08-01-2021 a las 12:45 #1681Alfredo SanzSuperadministrador
REV 2101
07-01-2021
* source\zClass\source\wArrayBrose.prg
+ Se pueden utilizar los estilos xc_Striped y xc_Highlight al mismo tiempo
+ PROPERTY lSort INIT .f. // Ordenación por columnas
+ PROPERTY lSearch INIT .t. // Búsqueda por columnas
+ PROPERTY cSearchTxt INIT "Buscar" // Texto placeholder casilla búsqueda columna
+ PROPERTY cSearchId INIT "buscar" // Id de la caja de búsqueda externa
+ PROPERTY lScroll INIT .f. // Browse scrollable
+ PROPERTY cHeight INIT "90vh" // Altura del browseVer ejemplo de uso en https://nefele.dev/foro/topic/nuevo-ejemplo-warraybrowse/
-
28-12-2020 a las 12:15 #1661Alfredo SanzSuperadministrador
Rev 2052
27-12-2020
* source\zClass\source\Timepicker.prg
+ PROPERTY lAutoSelect INIT .F. // No se selecciona el texto al coger el foco
+ PROPERTY nAdjustTime // Ajusta el tiempo seleccionado en el picker al valor indicado.
// si nAdjusTime = 5 y seleccionamos las 12:03, lo cambia a 12:05* source\zClass\source\button.prg
% Eliminado el texto "Enviar" por defecto cuando :cText está vacío- Esta respuesta fue modificada 3 años, 10 meses por Alfredo Sanz.
- Esta respuesta fue modificada 3 años, 10 meses por Alfredo Sanz.
-
28-12-2020 a las 12:14 #1660Alfredo SanzSuperadministrador
Rev 2051
18-12-2020
* source\zClass\source\Rebar.prg
! Faltaban unas comillas en la img del Method PlaceLogo()
* source\zClass\source\Form.prg
+ PROPERTY lValidatePlus INIT .f. // Sistema de validación basado en https://jqueryvalidation.org/
+ PROPERTY cValidateLang INIT "es" //Idioma a usar
+ PROPERTY cValidateText // Texto alternativo al usado por defecto "Este campo es obligatorio"* source\zClass\source\edit.prg
! No se podia usar nLength y nTimeOut conjuntamente
+ cAjaxTimeOut recibe parámetros definidos en aParams16-12-2020
* source\zClass\source\edit.prg
! Permitia erroneamente caracteres especiales en las cadenas de AutoComplete, ahora filtra '"', CRLF, CR, LF15-12-2020
* AddOn\MySQL MariaDB\Source\MariaBD_Connect.prg
% FUNCTION MariaDBConnect(cSqlHost,cSqlUser,cSqlPass,cSqlDDBB,nPort,nTimeOut)
// Añadidos nPort y nTimeOut* source\ConfigINI_DDBB.prg
% Se ha añadido nPort y nTimeOut a las llamadas a los DataSource de Xailer- Esta respuesta fue modificada 3 años, 10 meses por Alfredo Sanz.
- Esta respuesta fue modificada 3 años, 10 meses por Alfredo Sanz.
-
28-12-2020 a las 12:12 #1659Alfredo SanzSuperadministrador
Rev 2050
12-12-2020
* source\zClass\source\cgi.prg
! Corregido bug con UserData09-12-2020
* source\NefeleFunctions.prg
% FUNCTION nfl_OpenModal(cId, lDirect, cIdFocus)
% FUNCTION nfl_CloseModal(cId, lDirect, cIdFocus)
// con cIdFocus podemos indicar el control que cogera el foco al Abrir/Cerrar el Modal* source\zClass\source\icon.prg
METHOD Merge( oIcon )// Fusiona las propiedades del Objeto con las del pasado por parametro si no se han definido* source\zClass\source\ItemListView.prg
% Aplicamos el Methodo Merge en oIconEdit y oIconDelete, para poder definir propiedades en cada Item y el resto utilizar las de ListView
% Permitimos utilizar Iconos sin su correspondiente cOnClick, son meramente informativos* source\zClass\source\cgi.prg
! Cookie2Session y Session2Cookie no estaba funcionando correctamente07-12-2020
* source\zClass\source\FlatingBtn.prg
! Corregido bug al crear el control- Esta respuesta fue modificada 3 años, 10 meses por Alfredo Sanz.
- Esta respuesta fue modificada 3 años, 10 meses por Alfredo Sanz.
-
28-12-2020 a las 12:10 #1658Alfredo SanzSuperadministrador
Rev 2049
04-12-2020
* source\zClass\source\Badge.prg
% Evento OnClick en los Badge, se modifica el cursor a pointer si hay cOnClick
+ PROPERTY cOnClick
+ PROPERTY cTarget* source\zClass\source\Chips.prg
% Evento OnClick en los Chips, se modifica el cursor a pointer si hay cOnClick
+ PROPERTY cOnClick
+ PROPERTY cTarget* source\zClass\source\NefeleControl.prg
% METHOD CreateEvent // Admite URL como cFunction, las ejecuta con Window.Open e incluye un event.stopPropagation()- Esta respuesta fue modificada 3 años, 10 meses por Alfredo Sanz.
- Esta respuesta fue modificada 3 años, 10 meses por Alfredo Sanz.
-
28-12-2020 a las 12:08 #1657Alfredo SanzSuperadministrador
Versión 0.3.6
04-12-2020
* source\zClass\source\MsgAlert.prg
! No ponia correctamente la version de ext-materialize, utilizaba la de Nefele.ch
% Ahora si se carga en una página habilita ::lAlert en tWebPage y si no lo carga directamente pero utilziando ::oCGI:cVersionMaterialize03-12-2020
* source\zClass\source\ItemListView.prg
% Los eventos OnClick de ambos botones incluyen una aParam "EVENT" con "EditClick" o "DeleteClick"01-12-2020
* source\zClass\source\ArrayBrowse.prg
% Las columnas no heredaban los aParams del WArrayBrowse - Resuelto29-11-2020
* source\NefeleFuntions.prg
- FUNCTION ReplaceChars // Deprecated
+ FUNCTION nfl_ReplaceChars
* source\zClass\source\NefeleControl.prg
% METHOD EventFunction // Cuando la llamada a generar es por AJAX añade un aParam para que el CGI pueda identificarla
* source\zClass\source\Cgi.prg
+ PROPERTY lAjaxCall INIT .F. // La llamada al CGI ha sido desde AutoFormAjax28-11-2020
* source\zClass\source\ItemFloatButton.prg
% Pasan a heredar de wControl para integrarle CreateEvent
+ METHOD CreateFloatBtn() // Para utilizar en wFloatBtn
+ METHOD CreateSplitBtn() // Para utilizar en wSplitButton
% Aplicadas las propiedades ::cClrPane y ::cClrText, si es xc_Divider ::cClrText es el color de la linea
* source\zClass\source\SplitButton.prg
% Implementamos CreateEvent en los iTems para homogeneizar código
% Utilizamos CreateSplitBtn para crear cada uno de los Item
* source\zClass\source\FloatingBtn.prg
% Implementamos CreateEvent en los iTems para homogeneizar código
% Utilizamos CreateFloatBtn para crear cada uno de los Item
* source\zClass\source\icon.prg
+ PROPERTY cClrIcon // Aunque internamente utilizamos ::cClrText me parecia que era más intuitivo27-11-2020
* source\NefeleFunctions.prg
! FUNCTION nfl_CreateParamToScript // Con los HASH y los Array los paso a BASE64 para evitar problemas
* source\zClass\source\Cgi.prg
% METHOD New // Procesa los HASH y ARRAY encapsulados por Néfele en aParams en BASE64
* source\zClass\source\PDFReport.prg
+ PROPERTY cModalBevel INIT "" // Si queremos que una vez creado el PDF se visualize en una ventana Modal26-11-2020
* source\zClass\source\PDFReport.prg
+ PROPERTY lShow INIT .T. // Se abre directamente en modo vista previa en otra pestaña del navegador
// Metadatos del PDF
+ PROPERTY cPDFTitle INIT ""
+ PROPERTY cPDFSubject INIT ""
+ PROPERTY cPDFAuthor INIT ""
+ PROPERTY cPDFKeyword INIT ""
+ PROPERTY cPDFCreator INIT "wPDFReport by Néfele Project"25-11-2020
* source\XA_Application.prg
% METHOD Console // Soporte de HASH como valor para enviar a NéfeleConsole
* source\NefeleFunctions.prg
% FUNCTION nfl_CreateParamToScript // Admite HASH y ARRAY como valores de aParam
* source\zClass\source\Cgi.prg
% METHOD New // Procesa los HASH y ARRAY encapsulados por Néfele en aParams22-11-2020
* source\zClass\source\ItemListView.prg
! cOnClickDelete no estaba funcionando21-11-2020
* source\ConfigINI_DDBB.prg
+ Soporte para PostgresSQL
* include\Nefele.ch
+ #define xc_PostgreSQL 10505
* source\zClass\source\AdoConnect.prg
+ Soporte para PostgreSQL- Esta respuesta fue modificada 3 años, 10 meses por Alfredo Sanz.
-
04-10-2020 a las 09:54 #973Alfredo SanzSuperadministrador
Resumen modificaciones Néfele 0.3
- NéfeleWizard
+ Podemos indicarle la carpeta de Apache y de Xailer de manera manual
+ Nos permite crear un proyecto Néfele vacio, solo con el enrutados y una página con "Hola Mundo"
% Si seleccionamos un combre de carpeta con un espacio, se sustituye en el proyecto y en el alias por un guion medio "-"- wArrayBrowse
+ PROPERTY lIncludeArray INIT .t. // incluye un array json en el html con los datos de la tabla
+ PROPERTY aSaveData INIT {} // Datos a incluir en el array anterior, por defecto toda la tabla
+ FUNCTION jSonToArray( cId ) // Retorna el codigo javascript para convertir el json en un array javascript RETURN 'JSON.parse(document.querySelector("'+cId+'").value)'
% el Width de la columna ahora puede ser un % (si :nWidth es numérico) o la medida css indicada ( si es una cadena)
+ Ahora el valor de cada elemento del array a mostrar puede ser a su vez un array de tipo { valor a mostrar, tooltip a mostrar }- wItemColBrowse
+ PROPERTY cMacro INIT "" // Control a evaluar en la creación de la columna
+ PROPERTY cToolTip INIT "" // tooltip de la celda- wBadge
// Nuevo Control para la creación de Badge
% Para forzar a que calcule correctamente el ancho del Badge en lChip, reemplazamos los espacios de cText por
+ PROPERTY lChips // El Badget se presenta como un wChips
+ PROPERTY lPulse // Se presenta con efecto Pulse
+ PROPERTY lShadow // Se presenta con sombra
+ PROPERTY cImage // Imagen
+ PROPERTY cAltImage // texto Alternativo
+ PROPERTY cIcon // Icono que aparecera a la izquierda
+ PROPERTY cClrIcon // Color del Icono
% METHOD Set( cText, cClass, lBold, lNew, lPulse, cClrPane, cClrText )
+ METHOD SetArray( aProperties ) // aProperties := {cText, cClass, lBold, lNew, lPulse, cClrPane, cClrText}- wBevel
+ Incorporadas funcionalidades de wPanel
+ PROPERTY lShowFocus INIT .f. // Se resalta al pasar el raton por encima
+ PROPERTY lUseCard INIT .f.
+ PROPERTY nShadowDeep INIT 2 // Tipo de sombra a usar
+ PROPERTY cText INIT "" WRITE INLINE ::FcText := ::AdjustText( Value )
+ PROPERTY cClrTitle INIT "" WRITE INLINE ::FcClrTitle := CheckClr(Value)
+ PROPERTY nFontTitle INIT 5 // Tamaño de la Fuente segun Materialize para el Titulo
+ PROPERTY cTitleAlign INIT xc_Left // Alineación del Titulo
+ PROPERTY lLine INIT .F. // Pone una linea horizontas bajo el Title
+ PROPERTY cBackground // Fondo de la Página (realmente: fondo del tag <main>
+ PROPERTY cBackgroundSize // Tamaño del fondo
+ PROPERTY cBackgroundColor INIT "" // Color del fondo
+ PROPERTY lBackgroundRepeat INIT .T.
+ PROPERTY cBackgroundAlign INIT "center center" // Horizontal y Vertical- wBevelFoot
+ PROPERTY lScroolBars INIT .f. // para que no salgan las barras en el footer modal
% El cId de bevelfooter pasa a ser el cId del bevel + "_" + ::cClassId- wButton
+ PROPERTY cClrText INIT "" // Anunque la heredaba de wControl no se estaba aplicando en el Create
! PROPERTY lBold Ponia <strong> y no se notaba, lo sustitui por <b>
+ PROPERTY lHide INIT .f. // oculta el botón
// Llamada a URL externa con o sin parametros por POST y GET
cAction := URL a llamar
cUrlParam := Parametros a enviar por GET
aParams := Parametros a enviar por POST
Por defecto los parametros por POST se encriptan, se puede deshabilitar en ::lEncript
+ PROPERTY aDefaultClass INIT {'waves-effect waves-light'} //Clases por defecto a aplicar al boton
+ PROPERTY cIconWidth INIT "20px" // Tamaño por defecto del icono
+ PROPERTY nIconRotate // Rotacion en º a aplicar al icono
+ PROPERTY cToolTip- wCard
+ Pasa a ser un objeto contenedor dentro del que podemos añadir otros controles, se incuyen en la parte baja
del card en el area difinida como 'class="card_action"'.- wChips
+ PROPERTY lPulse // Se presenta con efecto Pulse
+ PROPERTY lShadow // Se presenta con sombra- tCGI
+ METHOD aParamsToHash( lMini )
// lMini == .T. { Params1 => value1, Params2 => value2, ... }
// lMini == .F. { Params1 => { value => value1, tmpfile => tmpfile, type => type}, ...}
! SendHardCookie no funcionaba bien para formatos fechas. Formato correcto: oCGI:SendHardCookie("Variable","Valor","2020100215:00:00")
+ METHOD SendJSon( cJSon ) // Para hacer envios de JSon bien declarado, no envia cTTFB
+ PROPERTY aColors INIT ArrayColors()
+ PROPERTY cSameSitePolicy INIT "lax" //protección cookies //https://www.tarlogic.com/blog/same-site-cookies-ataques-csrf/
% Modificado SendStatus para que funcione lNoCache en Firefox
% METHOD SendScript // Lo he modificado para que no incluya <script></script> porque ya enviamos el tipo mime como application/javascript"
+ METHOD TimeSuicide() // para contener todo el codigo a ejecutar para "Suicidar" nuestro CGI
% Modificado Suicide() para que utilize TimeSuicide()
+ PROPERTY nSuicideInterval INIT 50 // segundos para que arranque el suicide
+ PROPERTY lPreloadCss INIT .f. //lee los css en modo precarga
% En las cookies codificadas, el cambio de navegador ahora informa de un error pero no invalida el cookie- wEdit
+ Aplicación de la propiedad cAlingSymbol del oMask cuando ::oMask:cPicture == "currency"
% En la creación de Edit de Fecha se estaba definiendo dos veces minDate y faltaba maxDate
+ METHOD Code() INLINE ::ohtml:cInMain
+ PROPERTY cToolTip
% cAjaxTimeout ahora se ejecuta cambién cuando el control pierde el foco- wFileOpenDlg
+ PROPERTY cAcceptExt INIT {} // extensiones permitidas
+ PROPERTY lRequired INIT .t.
+ PROPERTY cHint // Mensaje que aparece en el control cuando esta vacio, tenga o no el foco- wImage
+ PROPERTY cImage2 INIT "" // imagen a mostar si pasamos el cursor sobre la principal
+ PROPERTY cAlt2 INIT ""
+ PROPERTY lClickZoom INIT .T. // Zoom al hacer click en la imagen
% Quitado el cursor default a pointer. Da la sensación de que se puede hacer click para ir a otro sitio y puede resultar confuso. siempre tenemos :cCursor
+ PROPERTY cAlt INIT "" // permite asignar un alt a la imagen- wItemListView
% En Firefox en el Badge se cortaba cText, si era lChips no pasaba
- PROPERTY cBadgeClass INIT "bold" // clase a aplicar a los badges en el listview
+ PROPERTY oBadge // para aplicar los badges en el listview- wMask
+ PROPERTY cAlingSymbol INIT xc_Right Valores xc_right,xc_left
// Para posicionar el simbolo de la moneda a la Derecha o a la Izquierda
+ PROPERTY lAutoUnmask INIT .t. // Elimina los caracteres propios de la máscara al consultar el valor
+ PROPERTY cValidatorAPlaceHolder INIT " " //Caracter del placeholder
+ PROPERTY cValidatorBPlaceHolder INIT " " //Caracter del placeholder- NefeleFunctions
+ FUNCTION ArrayColors() // Nos da la lista completa de los colores de Materialize { "#rrggbb", "nombre", .F.}
% FUNCTION CheckClr( cClr )
cClr puede ser:
Un valor númerico resultante de rgb(50,255,255)
Una cadena "#rrggbb"
o una cadena "rgb(r,g,b)"
Si corresponde con un color de Materialize nos renorna la Clase del color, si no crea una clase nueva nfl-rrggbb
y la añade a oCGI:aColors para evitar duplicados
+ FUNCTION ReplaceClrMaterialize( cItem, nCol ) // Busca cItem en la lista de colores Materialize y nos retorna la hexadecimal, si no lo encuentra nos retorna cItem
% Ahora, la creación de iconos en todo nefele se hace a través de FUNCTION PutIcon()
+ UpdateAjaxById( {{ "id del elemento", valor},{...}}) // actualiza el .value del control con el id indicado con el nuevo valor
+ ReplaceChars( cInput, cSearch, cReplace ) -> cOutput
+ FUNCTION PreloadCss( cCss ) // Permite la precarga del css indicado para evitar bloqueos- wPanel
% Pasa a heredar las funcionalidades de wBevel
+ PROPERTY lUseCard INIT .T. // si .f. no pone la clase Card al panel, que en algunos casos de problemas de ajuste- wRebar
% si cClrText tiene contenido, se lo asigna a cClrTitle, dado que en la mayoría de los controles usamos cCrlText- wSeparator
+ PROPERTY cProgressClr INIT ""
+ PROPERTY cProgressPane INIT ""
+ PROPERTY nProgress // muestra un preloader horizontal dentro del separator con el % de linea indicado. si es -1 lo hace indeterminate https://materializecss.com/preloader.html- wSideNav
% METHOD AddItem(cText,cOnClick,cIcon,nStyle,aParams,cAction,aBadge) // añadido aBadge {{texto[, clase a utilizar (new) y color]}} // añade badges al menu
+ PROPERTY cTitleClass INIT "z-depth-5" // Clase a aplicar al Title del menu- wItemSidenav
+ PROPERTY oBadge // para aplicar los badges en el SideNav- wSplitButton
% METHOD AddItem(cOnClick, cIcon, cText, lDivider, aParams, cAjaxBevel, lModalResult, aBadge) // añadido aBadge {{texto[, clase a utilizar (new) y color]}} // añade badges- wItemFloatButton
+ PROPERTY oBadge // para aplicar los badges en el wSpliButton
// Pordefecto oBadge:lNew := .T.- wTabs
// Nuevo Control de Tabs
+ PROPERTY cClassId INIT "tab"
+ PROPERTY aWidth init {,,,} // Ojo que no funciona bien materialize
+ PROPERTY aItems INIT {}
+ PROPERTY lFixedWidth INIT .t.
+ METHOD AddItem( cTitle, cTarget, lDisabled, lDefault)- wItemTabs
+ PROPERTY cFolder // id del bevel asociado
+ PROPERTY cTitle
+ PROPERTY lDisabled INIT .f.
+ PROPERTY lDefault INIT .F. // Pestaña por defecto- tWebPage.prg
+ PROPERTY aBreadCrumbs INIT {} // Pone breadcrumbs al pie de página {{url,texto},...}
+ PROPERTY lSnippet INIT .T. // si .f. no pone description en serp
+ PROPERTY cDescription INIT Application:cDescription //permite un meta description personalizado para la página
% Movida la sábana al pie de página para que no afecte al seo en buscadores
% No se estaban cerrando bien los <div> del Footer cuando habia Links
+ PROPERTY lCanonical INIT .T. // permite establecer la url canónica de la web. de momento: la misma url sin acentos y cambiando espacios por guiones
! En el fooder no aplicaba bien :cTitleFooter
% si no se establece :cTitleFooter por defecto pasa a ser :cTitle
+ PROPERTY cUri // cambia la url de la barra del navegador
+ PROPERTY cSearchConsoleCode INIT "" // Identificador para validar Search Console
+ PROPERTY lIndex INIT .T. // Si los robots indexan o no la página
+ PROPERTY lFollow INIT .T. // Si los robot hacen un follo de la página
+ PROPERTY lTrackUserAgent INIT .T. // Crea el fichero TrackUserAgent donde se registra fecha, hora, ip y useragent de todos los accesos
+ PROPERTY lJsMaterialize INIT .t. //Usamos Javascript materialize
% Actualizada versión de jQuery a la 3.5.1
% Cambiada la posición del shadowsheet para que ocupe toda la página -
16-09-2020 a las 21:10 #704Alfredo SanzSuperadministrador
Rev.232 (16-09-2020)
* source\image.prg
+ PROPERTY cImage2 INIT "" // imagen a mostar si pasamos el cursor sobre la principal
+ PROPERTY cAlt2 INIT ""
+ PROPERTY lClickZoom INIT .T. // Zoom al hacer click en la imagen
% Quitado el cursor default a pointer. Da la sensación de que se puede hacer click para ir a otro sitio y puede resultar confuso. siempre tenemos :cCursor* source\nefeleControl.prg
+ METHOD Create() Ha de tener los procesos comunes a todos los botones. LLamar con ::super:create() al principio del create del control
+ METHOD Measure( n ) //Devuelve medidas en formato correcto
+ Incoporado ::nTabIndex al método Create* source\button.prg
+ PROPERTY lHide INIT .f. // oculta el botón. nota: hay que añadirlo a otros botones* source\Button.prg
// Llamada a URL externa con o sin parametros por POST y GET
cAction := URL a llamar
cUrlParam := Parametros a enviar por GET
aParams := Parametros a enviar por POST
Por defecto los parametros por POST se encriptan, se puede deshabilitar en ::lEncript* source\Edit.prg
! NO estaba aplicandose lAjaxWaitOn en AjaxTimeOut
! NO se añadia # a cAjaxBevel en AjaxTimeOut
! No ponia en minusculas cAjaxBevel* source\ListView.prg
% Se habia desconfigurado en nType xc_Avatar
% Optimizado el uso de cSecondTitle cunado no es Colapsible -
10-09-2020 a las 15:49 #625Alfredo SanzSuperadministrador
Rev.228 (09-09-2020)
* source\FloatBtn.prg
% El texto que aparece al dato del btn ahora tiene el id lbl_ + cIdDelBoton* source\button.prg
+ PROPERTY aDefaultClass INIT {'waves-effect waves-light'} //Clases por defecto a aplicar al boton
+ PROPERTY cIconWidth INIT "20px" // Tamaño por defecto del icono
+ PROPERTY nIconRotate // Rotacion en º a aplicar al icono
+ PROPERTY cToolTip* source\SideNav.prg
+ PROPERTY cTitleClass INIT "z-depth-5" // Clase a aplicar al Title del menu* source\Rebar.prg
% si cClrText tiene contenido, se lo asigna a cClrTitle, dado que en la mayoría de los controles usamos cCrlText* source\ListView.prg
+ METHOD CreateItem ( oItem ) // la creación del item se hace en un method, no directamente en el código* source\image.prg
+ PROPERTY cAlt INIT "" // permite asignar un alt a la imagen* source\NefeleFunctions.prg
% ahora, la creación de iconos en todo nefele se hace a través de FUNCTION PutIcon()
+ UpdateAjaxById( {{ "id del elemento", valor},{...}}) // actualiza el .value del control con el id indicado con el nuevo valor* source\NefeleControl.prg
+ PROPERTY lAjaxAppend INIT .f. // Si .t. la respuesta ajax se añadirá a la actual* source\mask.prg
+ PROPERTY cValidatorAPlaceHolder INIT " " //Caracter del placeholder
+ PROPERTY cValidatorBPlaceHolder INIT " " //Caracter del placeholder* source\cgi.prg
+ PROPERTY cSameSitePolicy INIT "lax" //protección cookies //https://www.tarlogic.com/blog/same-site-cookies-ataques-csrf/
% Modeficado SendStatus para que funcione lNoCache en Firefox* source\webpage.prg
+ PROPERTY lSnippet INIT .T. // si .f. no pone description en serp
+ PROPERTY cDescription INIT Application:cDescription //permite un meta description personalizado para la página
% Movida la sábana al pie de página para que no afecte al seo en buscadores* source\edit.prg
% cAjaxTimeout ahora se ejecuta cambién cuando el control pierde el foco -
03-09-2020 a las 18:33 #596Alfredo SanzSuperadministrador
Rev.226 (02-09-2020)
* source\nefelecontrol.prg
% CreateEvent // Estaba añadiendo un ; de más cuando se utilizaba para llamar a una funcion JS directamente* source\bevel.prg
% reemplazada la llamada a ::CreateOnClick por ::CreateEvent para ir eliminando ::CreateOnClick- Esta respuesta fue modificada 4 años, 2 meses por Alfredo Sanz.
-
25-08-2020 a las 10:25 #467Alfredo SanzSuperadministrador
Rev.223 (25-08-2020)
wFileOpenDlg
+ PROPERTY cHint // Mensaje que aparece en el control cuando esta vacio, tenga o no el foco
+ PROPERTY cAccept // Tipos de Archivos admitidos ej: "image/png, image/jpeg"tCGI
+ METHOD TimeSuicide() // para contener todo el codigo a ejecutar para "Suicidar" nuestro CGI
% Modificado Suicide() para que utilize TimeSuicide()tWebPage
% No se estaban cerrando bien los <div> del Footer cuando había Links
wButton
% He aplicado el ::CreateClass que no existía cuando se creo el control
-
22-08-2020 a las 09:20 #454Alfredo SanzSuperadministrador
Rev.222 (22-08-2020)
CGI
+ PROPERTY nSuicideInterval INIT 50 // segundos para que arranque el suicide
+ PROPERTY lPreloadCss INIT .f. //lee los css en modo precargaNefelecore
+ Function SinAcentos( cString ) // quita acentos y cambia " " por "-"Webpage
+ PROPERTY lCanonical INIT .T. // permite establecer la url canónica de la web. de momento: la misma url sin acentos y cambiando espacios por guiones! En el fooder no aplicaba bien :cTitleFooter
% si no se establece :cTitleFooter por defecto pasa a ser :cTitle
Dropify
+ PROPERTY nMaxFileSize // Tamaño maximo del archivo en Mb
+ PROPERTY cTextFileSize INIT 'El fichero es muy grande ({{ value }} max).';- Esta respuesta fue modificada 4 años, 3 meses por Alfredo Sanz.
-
16-08-2020 a las 13:07 #393Alfredo SanzSuperadministrador
Rev.219 (16-08-2020)
WebPage
+ PROPERTY cUri // cambia la url de la barra del navegador
+ PROPERTY cSearchConsoleCode INIT "" // Identificador para validar Search Console
+ PROPERTY lIndex INIT .T. // Si los robots indexan o no la página
+ PROPERTY lFollow INIT .T. // Si los robot hacen un follo de la página
+ PROPERTY lTrackUserAgent INIT .T. // Crea el fichero TrackUserAgent donde se registra fecha, hora, ip y useragent de todos los accesos
+ PROPERTY lJsMaterialize INIT .t. //Usamos Javascript materialize% Actualizada versión de jQuery a la 3.5.1
zItemColBrowse
+ PROPERTY cToolTip INIT "" // tooltip de la celdaArrayBrowse
+ Ahora el valor de cada elemento del array a mostrar puede ser a su vez un array de tipo { valor a mostrar, tooltip a mostrar }NefeleFunction
+ FUNCTION PreloadCss( cCss ) // Permite la precarga del css indicado para evitar bloqueos -
12-08-2020 a las 16:31 #369Alfredo SanzSuperadministrador
Rev.214b (12-08-2020)
oEdit:oMask
+ PROPERTY lAutoUnmask INIT .t. // Elimina los caracteres propios de la máscara al consultar el valor -
12-08-2020 a las 15:09 #367Alfredo SanzSuperadministrador
Rev.214 (12-08-2020)
WebPage
% Cambiada la posición del shadowsheet para que ocupe toda la páginaCgi
% En las cookies codificadas, el cambio de navegador ahora informa de un error pero no invalida el cookie- Esta respuesta fue modificada 4 años, 3 meses por Alfredo Sanz.
-
12-08-2020 a las 12:51 #362Alfredo SanzSuperadministrador
===== PUBLICADA LA VERSIÓN 0.02 DE NEFELE ====
Os la podéis descargar de https://nefele.dev/blog/download/nefele-wizard-0-02/
-
05-08-2020 a las 15:18 #189Alfredo SanzSuperadministrador
Rev.212 (09-08-2020)
Edit
% Arreglado bug que impedia utilizar oMask:cPicture y nLenght al mismo tiempo% Arraglado bug que impedía asignar propiedades si no se ponia cPicture
CGI
+ PROPERTY lShowSystemMessages INIT .t. // Muestra por console errores generados por el sistemaDropify
% Arreglado bug en el tipo de ficheros aceptadoszItemColBrowse
+ PROPERTY cClass INIT "" // clases adicionales a cada columna- Esta respuesta fue modificada 4 años, 3 meses por Alfredo Sanz.
-
05-08-2020 a las 13:45 #170Alfredo SanzSuperadministrador
Rev.211 (05-08-2020)
ArrayBrowse
% Corregido problema en el onClick de los botones de columna
Webpage
% cVersionCoreFiles // Hasta tener un solo ch La versión nefele pasa a indicarse directamente en la property+ PROPERTY lShadowSheetCircle INIT .T. // si la sábana ha de mostrar o no el circulito girando
+ PROPERTY aOgTags INIT "" // Etiquetado pagina para Fb y Whatssap {sitename, title, description, image}
Para usar esta característica, tan solo tenemos que incluir la propiedad aOgTag en una vez definia a página. El siguiente ejemplo corresponde a la página https://samples.nefele.dev/archivo (Compártela por Whatsapp para ver cómo queda)
12345678910WITH OBJECT TWebPage():New():aOgTags := {"Archivo Informático", ;"Néfele for Harbour", ;"Colección de enlaces, vídeos y libros de programación",;"https://samples.nefele.dev/fbIcon.png"}oCGI:SendPage( :Create() )ENDCgi
+ METHOD Tiempos // Permite tener un log de los tiempos de ejecución de la app.% lCheckNavigator cambiado a .f. por defecto
- Este debate fue modificado 4 años, 3 meses por Alfredo Sanz.
- Este debate fue modificado 4 años, 3 meses por Alfredo Sanz.
- Este debate fue modificado 4 años, 3 meses por Alfredo Sanz.
- Este debate fue modificado 4 años, 3 meses por Alfredo Sanz.
- Este debate fue modificado 4 años, 3 meses por Alfredo Sanz.
- Este debate fue modificado 4 años, 3 meses por Alfredo Sanz.
- Este debate fue modificado 4 años, 3 meses por Alfredo Sanz.
- Este debate fue modificado 4 años, 3 meses por Alfredo Sanz.
- Este debate fue modificado 4 años, 3 meses por Alfredo Sanz.
-
-
AutorEntradas
- El debate ‘[Nefele] Changelog’ está cerrado y no admite más respuestas.