O aplicativo de manutenção é amplamente acionado pela configuração do aplicativo e pelos esquemas da API. Os esquemas são lidos diretamente da API (por D2). Os seguintes documentos a configuração do aplicativo:
src/config/ ...maintenance-models.js define os tipos de modelo que são mostrados no aplicativofield-config/ contém a configuração de cada tipo de modelofield-order.js define a ordem dos campos dentro do formulário para cada tipo de modelofield-groups.js define o agrupamento de campo para o formulário para cada modelo. Atualmente, isso é usado apenas para o ProgramRules, mas pode ser uma boa idéia expandi -lo para outros tipos de modelo também.field-overrides/ contém configuração extra para campos que requerem comportamento não padrão. Mais comumente, isso significa campos que exigem componentes especiais.index.js lista todos os modelos que têm uma ou mais substituições de campoindex.js . Alguns tipos de modelos ou campos que exigem muita lógica são separados em sub -pastas.inlinehelp-mapping.json especifica o mapeamento de cada seção/tipo de modelo para as páginas da documentação.field-rules.js contém lógica condicional que pode ser usada para mostrar ou ocultar campos ou definir valores de campo com base no valor de outros campos.periodTypes.json contém a lista de tipos de período suportados pela versão atual da API.disabled-on-edit/ contém arquivos que listam campos que sempre serão exibidos como somente leitura quando um objeto estiver sendo editado.index.js Importa listas de nomes de campo de arquivos nomeados após cada modelo relevantePara o registro, "esquemas" e "tipos de modelos" são essencialmente a mesma coisa e esses termos são usados de forma intercambiável tanto no aplicativo de manutenção quanto em outros lugares. Os esquemas são expostos pela API, mas nem todo tipo de modelo está listado nos esquemas. Para adicionar à confusão "modelos" também são algumas vezes chamados de "objetos".
Para que um tipo de modelo apareça no aplicativo de manutenção, as seguintes condições precisam ser atendidas:
src/config/maintenance-models.js Depois que essas condições forem atendidas, o tipo de modelo será exibido no aplicativo de manutenção na seção especificada em maintenance-models.js . Ao criar ou editar modelos do novo tipo, o formulário contém apenas um punhado de campos predefinidos. Para que os campos adicionais sejam mostrados no formulário, as seguintes condições precisam ser atendidas:
src/config/field-config/field-order.jsAdicionar um novo modelo à manutenção normalmente envolve as seguintes etapas:
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 o arquivo recém-criado e adicione-o ao objeto overridesByType .src/config/field-overrides/newType.js ), comece a adicionar personalizações para os campos que o exigem. Isso normalmente envolve a criação de novos componentes e/ou substituir determinadas propriedades do campo. Veja as substituições de campo existentes para exemplos.** string ** na interface do usuário não têm traduções. Eles precisarão ser adicionados aos arquivos de traduções localizados no src/i18n/ . Algumas strings são geradas dinamicamente e podem aparecer apenas em determinadas situações, por exemplo, ao tentar excluir um modelo. NOTA: O fluxo de trabalho de tradução deve, em algum momento, mudar para o uso do i18Next em favor do d2.i18n . Certos modelos requerem personalização além do que é possível usando as substituições de configuração e campo. Nesses casos, pode ser necessário criar um novo componente de nível superior e associar esse componente a uma rota especial no src/router.js
Exemplos dessa abordagem incluem:
src/EditModel/event-program/EditEventProgram.component.jssrc/EditModel/EditDataEntryForm.component.js