La aplicación de mantenimiento está impulsada en gran medida por la configuración de la aplicación y los esquemas de la API. Los esquemas se leen directamente de la API (por D2). El siguiente documenta la configuración de la aplicación:
src/config/ ...maintenance-models.js Define los tipos de modelos que se muestran en la aplicaciónfield-config/ contiene configuración para cada tipo de modelofield-order.js Define el orden de los campos dentro del formulario para cada tipo de modelofield-groups.js Define la agrupación de campo para el formulario para cada modelo. Actualmente, esto solo se usa para ProgramRules, pero podría ser una buena idea expandirlo a otros tipos de modelos también.field-overrides/ contiene configuración adicional para campos que requieren un comportamiento no estándar. Más comúnmente esto significa campos que requieren componentes especiales.index.js enumera todos los modelos que tienen una o más anulaciones de campoindex.js . Algunos tipos o campos de modelos que requieren mucha lógica se separan en subpoletas.inlinehelp-mapping.json especifica la asignación de cada sección/modelo de modelo a páginas en la documentación.field-rules.js contiene una lógica condicional que puede usarse para mostrar u ocultar campos o establecer valores de campo en función del valor de otros campos.periodTypes.json contiene la lista de tipos de período compatibles con la versión actual de la API.disabled-on-edit/ contiene archivos que enumeran campos que siempre se mostrarán como de solo lectura cuando se edite un objeto.index.js Importa listas de nombres de campo de archivos que llevan a cabo cada modelo relevantePara el registro, los "esquemas" y los "tipos de modelos" son esencialmente lo mismo y estos términos se usan indistintamente tanto en la aplicación de mantenimiento como en otros lugares. Los esquemas están expuestos por la API, pero no todos los tipos de modelo se enumeran en los esquemas. Para agregar a los "modelos" de confusión también se conocen algunas veces como "objetos".
Para que se muestre un tipo de modelo en la aplicación de mantenimiento, se deben cumplir las siguientes condiciones:
src/config/maintenance-models.js Una vez que se cumplan estas condiciones, el tipo de modelo aparecerá en la aplicación de mantenimiento en la sección especificada en maintenance-models.js . Al crear o editar modelos del nuevo tipo, el formulario solo contendrá un puñado de campos predefinidos. Para que se muestren campos adicionales en el formulario, se deben cumplir las siguientes condiciones:
src/config/field-config/field-order.jsAgregar un nuevo modelo al mantenimiento generalmente implica los siguientes pasos:
src/config/maintenance-models.jssrc/config/field-config/field-order.jssrc/config/field-config/field-groups.js .src/config/field-overrides/ . Abra src/config/field-overrides/index.js , importe el archivo recién creado y agréguelo al objeto overridesByType .src/config/field-overrides/newType.js ), comience a agregar personalizaciones para los campos que lo requieren. Esto generalmente implica crear nuevos componentes y/o anular ciertas propiedades de campo. Mire las anulaciones de campo existentes para ver ejemplos.** string ** En la UI carecen de traducciones. Estos deberán agregarse a los archivos de traducciones ubicados en src/i18n/ . Algunas cadenas se generan dinámicamente y solo pueden aparecer en ciertas situaciones, por ejemplo, cuando se trata de eliminar un modelo. Nota: El flujo de trabajo de traducción debe cambiar en algún momento el uso de I18Next a favor de d2.i18n . Ciertos modelos requieren personalización más allá de lo posible utilizando la configuración y las anulaciones de campo. En esos casos, puede ser necesario crear un nuevo componente de nivel superior y asociar ese componente con una ruta especial en src/router.js
Ejemplos de este enfoque incluyen:
src/EditModel/event-program/EditEventProgram.component.jssrc/EditModel/EditDataEntryForm.component.js