¡Bienvenido a PHPost!

Para participar en el foro, descargar complementos y acceder al chat, es necesario tener una cuenta activa.
Por favor, regístrate utilizando un correo electrónico válido para completar la activación.

Descarga Risus Nova 2.0   (Ver notas de la versión) Estable | Actualizado: 16/06/2026

Regístrate Descargar Risus Nova
Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

COMPLEMENTOS Pequeño ajuste para los botones del modal
#1

3
Mejor respuesta del mensaje Pequeño ajuste para los botones del modalBueno hace tiempo hice este cambio para el modal, el cual facilitaría la creaciones de modales con botones.
 
Antes se tenia que usar así: 
mydialog.buttons(true, true, 'SI', "bloquear('"+user+"', true, '"+lugar+"', true)", true, false, true, 'NO', 'close', true, true); 

Ahora es poco más largo, pero más fácil de entender
mydialog.buttons([
   {mostrar:true,texto:'SI',accion:"bloquear('"+user+"', true, '"+lugar+"', true)",activo:true},
   {mostrar:true,texto:'NO',accion:'cerrar',activo:true}
]) 

Tiene varias maneras de poder emplearlo, la primera es como se muestra en el código de arriba ↑ y las otras 2 son de estas formas:
mydialog.buttons({mostrar:true,texto:'SI',accion:"bloquear('"+user+"', true, '"+lugar+"', true)",activo:true})
mydialog.buttons(false) // Puede ser true
Y se le podrá agregar más de 2 botones, puede ser 3, 4, etc...
 
Vamos al archivo acciones.js, buscamos
buttons: function(display_all, btn1_display, btn1_val, btn1_action, btn1_enabled, btn1_focus, btn2_display, btn2_val, btn2_action, btn2_enabled, btn2_focus){
... TODO EL CODIGO INCLUIDO ...
},

La reemplazamos por
buttons: function(object) {
    let agregar_botones = '';
    // Es un objeto...
    if(typeof object === 'object') {
        // Es un Arreglo (array)...
        if(Array.isArray(object)) {
            for(let i = 0; i < object.length; i++) {
            if(object.mostrar) {
                let clase = !empty(object.clase) ? object.clase : (!i ? 'btnOk' : 'btnCancel');
                let activo = object.activo ? '' : ' disabled'
// Si la acción es igual a "cerrar"
               let accion = (object.accion == 'cerrar') ? ` onclick="mydialog.close()"` : ` onclick="${object.accion}"`
                agregar_botones += `<input type="button" class="mBtn ${clase}${activo}" style="display:inline-block" value="${object.texto}"${accion}${activo} >`;
            }
            }
        } else {
            if(object.mostrar) {
            let clase = !empty(object.clase) ? object.clase : 'btnOk';
            let activo = object.activo ? '' : ' disabled'
// Si la acción es igual a "cerrar" o contiene una función
            let accion = (object.accion == 'cerrar') ? `onclick="mydialog.close()"` : ` onclick="${object.accion}"`
            agregar_botones += `<input type="button" class="mBtn ${clase}${activo}" style="display:inline-block" value="${object.texto}"${accion}${activo}>`;
            }
        }
// Si el boolean es TRUE entonces mostrará este botón por defecto, si es FALSE no mostrará nada
    } else if(typeof object === 'boolean') {
        agregar_botones += object ? `<input type="button" class="mBtn btnOk" style="display:inline-block" value="Aceptar" onclick="mydialog.close()">` : ''
    }
   $('#mydialog #buttons').html(agregar_botones)
}, 

El objeto que se puede pasar, si solo contendrá un botón pude ir solo el objeto, en caso que sean 2 o más botones deberá ir así

   { ... PARAMETROS DEL OBJETO 1 ... },
   { ... PARAMETROS DEL OBJETO 2 ... }
]

Los parámetros que se pueden usar
{
   mostrar: boolean, // TRUE o FALSE
   texto: string,  // El texto que se mostrará
   accion: string, // Función que se empleará o "cerrar"
   activo: boolean, // TRUE o FALSE
   clase: string // Opcional, puede incluir clase para modificar la apariencia del botón

Espero que sea clara la explicación y lo puedan entender...
Responder


Compartir en:

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)