The AOC Framework
github logodiscord logo

FRONTEND

Model configs #

Los model-configs son configuraciones vinculadas a un modelo que que se utilizan en el cliente.

Son clases que extienden a AocModelConfig, "inyectables" y también pueden ser un "pipe".

En general se usa para definir varios aspectos de cómo deben de comportarse ciertos elementos de framework con relación a la gestión de modelos.

Propiedad Descripción Ejemplo
allow Define qué operaciones serán posibles con los modelos (todas, sólo añadir, editar, eliminar...) "all"
form Define la ruta de carga del formulario que se abrirá en una ventana, se puede usar un import para que sea lazy-loading { loadComponent: () => import('../(ruta)/cliente-form.component'), aocUiWindowDynConfig: { width: 1280, height: 800 } }
socketExtraSubscriptions Array de tipos de modelos sobre los que también se escucharán cambios [TipoCliente]
payload Un AocFilter (función) de servidor que se ejecutará (usado para las búsquedas), o directamente definir el criterio de búsqueda con un Query builder { fnName: 'clienteFilter', type: 'filter' }
transform Pipe para convertir el modelo a string transform(cliente: Cliente) {

Proporciona métodos que son atajos canAdd(), canEdit(), canDelete(), canClone(), cloneWith(...).

Ejemplos #

allow #

De tipo AocModelConfigAllow, acepta valores como 'all' o 'none'.

  readonly allow: AocModelConfigAllow = 'all';

form #

Lazy-loading de un formulario (que aparecerá en una ventana)

  readonly form = {
    loadComponent: () => import('../../features/schemas/customer/customers/customer-form.component'),
    aocUiWindowDynConfig: {
      width: 1280,
      height: 800
    }
  };

socketExtraSubscriptions #

Se definen los modelos sobre cuyos cambios (operaciones sobre la base de datos) serán notificados.

  readonly socketExtraSubscriptions: AocModelConfigSocketExtraSubscriptions = [CustomerType];

payload #

De tipo AocModelConfigServerPayload, aquí se ejecturaría la función de filtro registrada en el servidor con el nombre customerFilter.

  readonly payload: AocModelConfigServerPayload = {
    fnName: 'customerFilter',
    type: 'filter'
  };

transform #

Es la implementación del método transform, que en caso de añadir @Pipe en la clase del modelConfig, podremos usar en los templates.

  transform(customer: Customer) {
    return `${customer.code} - ${customer.fiscal_name}`;
  }

clone #

La función clone implementada recibirá un modelo y deberá retornar, o bien un modelo nuevo (es decir, clonado) o bien una promesa retornando dicho modelo.

Ejemplo completo en quest-client/src/app/model-configs/customers/customer-model-config.ts

API #

Definición completa en la API.

Por favor, busque en Issues y Discussions en Github para más información

© 2025 Atlantis of Code. All rights reserved.
All trademarks are the property of their respective owners.