====== Función nfl_UpdateById ====== nfl_UpdateById( aData, lTag ) --> cJS Nos devuelve la cadena JS/JQuery necesaria para modificar propiedades de los elementos del DOM. aData es un Array de elementos del DOM a modificar { {"elem1", value1, "property1"}, {"elem2", value2, "property2"} }, si solo vamos a modificar un elemento del DOM podemos pasarle una array simple {"elem", value, "property"} Si no damos valor a property de utilizara "**value**" por defecto Como Property se admite; * **html**: Para modificar el contenido de un elemento contenedor * **addclass**: Para añadir una clase CSS al elemento * **removeclass**: Para eliminar una clase CSS al elemento * **setattribute**: Para añadir y modificar un atributo del elemento * **removeattribute**: Para eliminar una atributo del elemento * **disabled**: Para poner en modo deshabilitado al elemento * **pulse**: Para que el elemento parpadee * **data-badge-caption**: Para modificar el texto de un wBadget ===== Ejemplo de uso por AJAX ===== {{url>https://samples.nefele.dev/wiki/updatebyid 100%,140px}} PROCEDURE vUpDateById( o ) WITH OBJECT WBevel():New( o ) :lValign := .T. WITH OBJECT WBevel():New( :WO ) :aWidth[ xc_S ] := 5 WITH Object WButton():New( :WO ) :cText := "Activar Pulse" :cOnClick := "UpDateById1" // Esto realmente llama a AjaxUpdateById( .T. ) :cIcon := "blur_on" :cAjaxBevel := "nflcargo" :lLarge := .T. :lCenter := .T. :nFix := "90%" :Create() END WITH :Create() END WITH WITH OBJECT WBevel():New( :WO ) :aWidth[ xc_S ] := 2 :lHcenter := .T. WITH OBJECT WIcon():New( :WO ) :cId := "oicon" :cIcon := "cancel" :cSize := "large" :Create() END WITH :Create() END WITH WITH OBJECT WBevel():New( :WO ) :aWidth[ xc_S ] := 5 WITH Object WButton():New( :WO ) :cText := "Desactivar Pulse" :cOnClick := "UpDateById2" // Esto realmente llama a AjaxUpdateById( .F. ) :cIcon := "blur_off" :cAjaxBevel := "nflcargo" :lLarge := .T. :lCenter := .T. :nFix := "90%" :Create() END WITH :Create() END WITH :Create() END WITH RETURN //------------------------------------------------------------------------------ PROCEDURE AjaxUpdateById( lPulse ) oCGI:SendScript( nfl_UpdateById( {{ "oicon", lPulse, "pulse" },; { "oicon", "red-text", IIF( lPulse, "addclass", "removeclass") } } ) ) RETURN //------------------------------------------------------------------------------ CLASS TCgi FROM XCgi // De esta manera tengo dos entradas al CGI que van al mismo PROCEDURE pero con parámetros distintos METHOD UpdateById1() INLINE AjaxUpdateById( .T. ) METHOD UpdateById2() INLINE AjaxUpdateById( .F. ) END CLASS ===== Ejemplo de uso directamente con JS ===== {{url>https://samples.nefele.dev/wiki/updatebyid2 100%,140px}} PROCEDURE vUpDateById2( o ) WITH OBJECT WBevel():New( o ) :lValign := .T. WITH OBJECT WBevel():New( :WO ) :aWidth[ xc_S ] := 5 WITH OBJECT WButton():New( :WO ) :cText := "Activar Pulse" :cOnClick := "js:" + nfl_UpdateById( { { "oicon", .T., "pulse" },; { "oicon", "red-text", "addclass" } } ) :cIcon := "blur_on" :lLarge := .T. :lCenter := .T. :nFix := "90%" :Create() END WITH :Create() END WITH WITH OBJECT WBevel():New( :WO ) :aWidth[ xc_S ] := 2 :lHcenter := .T. WITH OBJECT WIcon():New( :WO ) :cId := "oicon" :cIcon := "cancel" :cSize := "large" :Create() END WITH :Create() END WITH WITH OBJECT WBevel():New( :WO ) :aWidth[ xc_S ] := 5 WITH OBJECT WButton():New( :WO ) :cText := "Desactivar Pulse" :cOnClick := "js:" + nfl_UpdateById( { { "oicon", .F., "pulse" },; { "oicon", "red-text", "removeclass" } } ) :cIcon := "blur_off" :lLarge := .T. :lCenter := .T. :nFix := "90%" :Create() END WITH :Create() END WITH :Create() END WITH RETURN ===== Parámetros ===== ^Nombre ^Descripción ^Versión ^ | aData | Array de elementos del DOM a modificar | 0.4| | lTag | Si lo habilitamos nos empaquetara la salida entre