Controla la visibilidad de los elementos de la IU

A fin de controlar la visibilidad de los elementos de la IU para usuarios específicos, puedes usar la propiedad visible. Puedes ocultar los widgets de un usuario si el widget no es relevante o si el usuario no debería poder usarlo. Por ejemplo, no es necesario que una página tenga un botón Guardar para guardar cambios en un registro hasta que el usuario modifica un registro. Si un usuario no tiene permiso para acceder a una página, puedes ocultar el vínculo a esa página.

Conceptos clave:

  • La propiedad visible tiene un valor booleano (verdadero = visible, falso = oculto). Puedes vincular el valor o usar una secuencia de comandos a fin de determinar si el usuario cumple con los requisitos para que un widget sea visible.
  • Llama a una función de secuencia de comandos del servidor desde una secuencia de comandos del cliente cuando la condición de visibilidad depende de otra secuencia de comandos del servidor o de información proveniente de un servicio de terceros.
  • Cuando un widget contiene otros widgets, la configuración del widget superior se aplica a sus elementos secundarios. Por ejemplo, si tienes un widget de formulario que contiene un título, campos de entrada y un botón Enviar, puedes ocultar componentes individuales o todo el formulario.

Usa una secuencia de comandos para controlar la visibilidad del widget

  1. Escribe una secuencia de comandos del cliente que determine si el usuario puede acceder al widget y muestra un valor booleano. Por ejemplo, la Plantilla: Aprobación de viajes tiene la utilidad de secuencia de comandos del cliente. Cuenta con las siguientes tres funciones para probar si el usuario es miembro de una función específica:

    /**
         * Determines whether the user has specified role.
         * @param {string} roleName - name of the role to check.
         * @return {boolean} true if user has the role.
         */
        function hasRole(roleName) {
          return (app.user.roles.indexOf(roleName) > -1);
        }
    
        /**
         * Determines whether the user is admin.
         * @return {boolean} true if user is an admin.
         */
        function isAdmin() {
          return hasRole('Admins');
        }
    
        /**
         * Determines whether the user is approver.
         * @return {boolean} true if user is an approver.
         */
        function isApprover() {
          return hasRole('Approvers');
        }
        

    La función hasRole(roleName) obtiene una lista de funciones de las que es miembro el usuario actual y busca la presencia de la función especificada. Por ejemplo, si una secuencia de comandos del cliente llama a isAdmin(), la secuencia de comandos busca la función Administradores. Si la función Administradores está presente, tiene un valor de índice de 0 o más y la expresión que se muestra se evalúa como verdadera.

  2. Selecciona el widget para el que deseas establecer la visibilidad. Recuerda que los widgets que se encuentran debajo de ella en la jerarquía heredan el nivel de visibilidad del widget superior.

  3. En el Editor de propiedades, haz clic en Mostrar.

  4. Haz clic en el menú desplegable visible y selecciona vinculación.

  5. En el diálogo de vinculación, ingresa una expresión que llame a la secuencia de comandos del cliente. Por ejemplo, para mostrar el widget si el usuario es miembro de Administradores o Aprobadores, ingresa lo siguiente:

    isAdmin()||isApprover()
        

Usa una vinculación para controlar la visibilidad del widget

  1. Selecciona el widget para el que deseas establecer la visibilidad. Recuerda que los widgets que se encuentran debajo en la jerarquía heredan el nivel de visibilidad del widget superior.
  2. En el Editor de propiedades, haz clic en Mostrar.
  3. Haz clic en el menú desplegable visible y selecciona vinculación.
  4. En el diálogo de vinculación, escribe una expresión de vinculación. Por ejemplo, debes escribir la siguiente expresión para dar acceso a los miembros de la función Administradores:

    @user.role.Managers
        

Usa números y strings en vinculaciones como valores booleanos

Puedes vincular la propiedad visible a un campo con un valor de Número o String (no una Fecha) y App Maker puede convertir automáticamente el valor en un valor booleano. Las conversiones para números y casos especiales (indefinido, nulo y NaN) son iguales a las conversiones de tipo JavaScript. Las conversiones para strings son diferentes a las conversiones de tipo JavaScript.

Tipo de campo Verdadero (visible) Falso (oculto) ¿Igual que JavaScript?
Booleano Valor: La casilla está seleccionada. Valor: La casilla está desactivada.
Número
  • 1, 1.0
  • Todos los demás valores no enumerados en False; por ejemplo, 2, 208.1, -7, Infinito, -Infinito
0, -0, 0.0, -0.0
String "true", "True", "TRUE" (mayúsculas o minúsculas)
  • "false", "False", "FALSE" (mayúsculas o minúsculas)
  • Todos los demás valores no enumerados en True; por ejemplo, “empleado” o “administrador”
No