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(...)
.
De tipo AocModelConfigAllow, acepta valores como 'all'
o 'none'
.
readonly allow: AocModelConfigAllow = 'all';
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
}
};
Se definen los modelos sobre cuyos cambios (operaciones sobre la base de datos) serán notificados.
readonly socketExtraSubscriptions: AocModelConfigSocketExtraSubscriptions = [CustomerType];
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'
};
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}`;
}
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
Definición completa en la API.
Por favor, busque en Issues y Discussions en Github para más información