Grav-plugin-admin: No se pueden desmarcar todas las casillas de verificación de un grupo y guardar + problema menor de UX

Creado en 24 may. 2016  ·  3Comentarios  ·  Fuente: getgrav/grav-plugin-admin

Por el momento estoy evaluando a Grav. Tengo instalados Grav v1.1.0-beta.5 y Admin v1.1.0-beta.5 y experimenté dos problemas. Primero, es imposible dentro del complemento de administración desmarcar todas las casillas de verificación en un grupo y guardarlo después. Para reproducir este problema, tome por ejemplo este

checkboxes

(la opción process en la configuración del sistema), desmarque todas las casillas de verificación y presione guardar. Mostrará el estado que tenía antes (una casilla de verificación habilitada o dos).

El segundo problema que encontré es un problema de UX. Mira aquí

ui

donde los textos desbordan la caja.

bug replicated

Todos 3 comentarios

Repliqué el problema con las casillas de verificación.

Ok, la causa del problema es: si la casilla de verificación no está seleccionada, el formulario no la envía como parte de los datos de la publicación. Esto es normal, pero en el controlador prepareData() , los valores predeterminados de la configuración del sistema se combinan, por lo que process.markdown siempre se establece en verdadero. @ w00fz , ¿cree que podemos resolver esto con una solución como http://stackoverflow.com/a/1992745 ? O esto debe resolverse en el lado de php

No me gustaron mucho esas soluciones porque nos obligó a mantener 2 campos muy diferentes, con el mismo nombre, en el DOM. Potencialmente, podría haber causado problemas para JS cada vez que necesitara buscar ese campo y buscar por el nombre, en cuyo caso habría obtenido una matriz de campos que contenían ambos.

Lo que hice para solucionar esto es buscar rápidamente las casillas de verificación que no están marcadas en el formulario, cada vez que se envía el formulario. Para cada uno de esos campos que nunca se enviarían porque no están marcados, estoy creando un campo oculto con el mismo nombre y con un valor forzado de 0, luego lo agrego al formulario y dejo que el envío del formulario continúe.

Parece que ahora me está funcionando bien.

¿Fue útil esta página
0 / 5 - 0 calificaciones