Criando ofeatures.json arquivos

Depois de criar um novo aplicativo, você cria os arquivos features.json que adicionam itens de menu do novo aplicativo ao menu de navegação principal.

Sobre esta tarefa

Você precisa criar duas versões dofeatures.json arquivo. Você usa uma versão de arquivo para fins de desenvolvimento e outra versão de arquivo para implementar o aplicativo. Os arquivos são idênticos, com duas exceções.
  • O valor que você define no navegação > rota > link propriedade difere entre as versões do arquivo de desenvolvimento e implantação.
  • O diretório onde você coloca o arquivo para desenvolvimento e implantação local é diferente. Você coloca o arquivo de desenvolvimento local nodevtoolkit_docker/orderhub-code/shell-ui/assets/dev diretório. Você coloca o arquivo de implantação nodevtoolkit_docker/orderhub-code/shell-ui/assets diretório.
Depois de criar um arquivo features.json para fins de desenvolvimento, você pode fazer uma cópia do arquivo e, em seguida, fazer as alterações necessárias para a versão de implementação.

Procedimento

Repositório Mono/repositório Angular - configuração

  1. No diretório orderhub-code , crie a seguinte estrutura de diretórios.
    mkdir -p devtoolkit_docker/orderhub-code/shell-ui/assets/dev
  2. No diretório shell-ui/assets/dev , crie um arquivo features.json .
    Este arquivo contém uma série de recursos, cada um representando uma opção de menu na barra de navegação esquerda do shell. Defina cada recurso usando as seguintes propriedades.
    ícone
    Nome do ícone. Você pode encontrar a lista de ícones aceitáveis no arquivo /opt/app-root/src/shell-ui/assets/icons/shell-icon-set.svg dentro do contêiner om-orderhub-base Docker.
    iconForRailStateOnly (opcional)
    Verdadeiro/falso - exibe apenas o ícone do menu quando o menu é recolhido. O valor padrão é definido como falso.
    ID
    Um identificador exclusivo do recurso para distinguir os recursos personalizados dos recursos fornecidos com o produto. Prefixe o ID comcustom .
    navegação
    Descreve como navegar até esse recurso.
    rota
    O objeto de rota contém duas propriedades.
    :NONE.
    O URL para iniciar a página do recurso como um IFRAME. O valor especificado aqui depende do modo em que o contêiner está sendo executado.
    • Quando você executa o Order Hub em seu ambiente de desenvolvimento local, o valor é um URL absoluto com um nome de domínio totalmente qualificado. Por exemplo, se o servidor de desenvolvimento do repositório personalizado estiver configurado para servir a UI na porta9600 , então o valor é definido comohttps://localhost:9600/<base href>/<path to the page> assumindo que o servidor de desenvolvimento do repositório esteja rodando localmente.

      Coloque o arquivo para desenvolvimento local no<path to orderhub code directory>/shell-ui/assets/dev diretório.

    • Ao criar o arquivo para a implantação, defina o valor como/order-management-customization/<base-href>/<path to the page> . Obase-href representa o href base usado para construir o repositório Angular.

      Coloque o arquivo de implantação no<path to orderhub code directory>/shell-ui/assets diretório.

    caminho
    Representa a rota a ser usada para associar a UI personalizada à interface de usuário comum. Quando um usuário navega por um recurso personalizado, o valor é exibido na barra de endereços do navegador. Usar/<base-href>/<path to the page> como o caminho.
    parentFeatureId
    O endereço parentFeatureId que é fornecido quando você adiciona o recurso como um submenu do menu existente.
    Você pode localizar o valor como umid nofeatures.json arquivo no contêiner base. Execute o seguinte comando para extrair o arquivo:
    docker cp om-orderhub-base:/opt/app-root/src/shell-ui/assets/features.json features.json
    sequência
    O valor sequence que é fornecido para adicionar um novo recurso ou submenu à navegação. O valor da sequência determina onde o novo recurso ou submenu aparece na navegação. Para obter mais informações sobre valores de sequência, consulte Recursos de posicionamento no menu de navegação.
    título
    Título do cardápio. Este campo apoia a globalização. Para usar o serviço de tradução, use a chave da propriedade de tradução como valor, por exemplofeatures.custom-feature-title .
    tipo
    Sempre defina o valor do tipo como IFRAME.
    Condição de ativação (opcional)
    Especifica as condições quando o recurso está habilitado. Quando não é especificado, habilita o recurso para todos os usuários por padrão.
    byResourceId
    Os usuários devem ter acesso a uma lista separada por vírgulas de IDs de recursos para acessar a UI.
    oculto
    Uma propriedade de opções que oculta um recurso na faixa de opções. O valor padrão é false. Use esta propriedade para acessar hiperlinks dentro de um módulo de UI. Um usuário pode marcar ou compartilhar o recurso copiando o URL de um navegador.

    Veja o seguintefeatures.json exemplo de arquivo para desenvolvimento.

    devtoolkit_docker/orderhub-code/shell-ui/assets/dev/features.json
    Figura 1. Amostrafeatures.json para desenvolvimento
    [
    {
      "id": "monorepo",
      "title": "Custom Mono Repo",
      "icon": "programs-30",
      "parentFeatureId": "oms-inventory-root",
      "sequence": "10.4011",
      "iconForRailStateOnly": true,
      "navigation" : {
    	"route" : {
    		"link": "https://localhost:9300/custom-monorepo/custom-page1/monorepo/home",
    		"path": "/custom-monorepo/custom-page1/monorepo/home"
    	}
      },
      "type": "IFRAME"
    },
    {
      "id": "angularrepo",
      "title": "Custom Angular Repo",
      "icon": "tool-30",
      "parentFeatureId": "oms-order-hub-l1",
      "sequence": "10.16",
      "navigation" : {
    	"route" : {
    		"link": "https://localhost:4000/custom-angularrepo",
    		"path": "/angularrepo"
    	}
      },
      "enablementCondition": {
           "byResourceId": "BUCWSP"
      },
      "type": "IFRAME"
    }
    ]

    Depois de criar sua versão de desenvolvimento do arquivo, você poderá fazer alterações para implantação. Consulte o arquivo de exemplo devtoolkit_docker/orderhub-code/shell-ui/assets/features.json para obter informações sobre a implantação.

    devtoolkit_docker/orderhub-code/shell-ui/assets/features.json
    Figura 2 Amostrafeatures.json para implantação
    [
    {
      "id": "monorepo",
      "title": "Custom Mono Repo",
      "icon": "programs-30",
      "parentFeatureId": "oms-inventory-root",
      "sequence": "10.4011",
      "iconForRailStateOnly": true,
      "navigation" : {
    	"route" : {
    		"link": "/order-management-customization/custom-monorepo/custom-page1/monorepo/home",
    		"path": "/custom-monorepo/custom-page1/monorepo/home"
    	}
      },
      "type": "IFRAME"
    },
    {
      "id": "angularrepo",
      "title": "Custom Angular Repo",
      "icon": "tool-30",
      "parentFeatureId": "oms-order-hub-l1",
      "sequence": "10.16", 
      "navigation" : {
    	"route" : {
    		"link": "/order-management-customization/custom-angularrepo",
    		"path": "/angularrepo"
    	}
      },
      "enablementCondition": {
           "byResourceId": "BUCWSP"
      },
      "type": "IFRAME"
    }
    ]
  3. Tradução do título do recurso
    Crie os arquivos específicos do idioma no diretório shell-ui/assets/i18n . Os idiomas suportados por padrão são os seguintes.
    • de.json
    • en.json
    • es.json
    • fr.json
    • it.json
    • ja.json
    • ko.json
    • pl.json
    • pt.json
    • ru.json
    • tr.json
    • zh-Hant.json
    • zh-Hans.json
    Este arquivo segue a convenção padrão Angular para arquivos de tradução. Por exemplo, se o título do recurso forfeatures.custom-feature-title , então a tradução.json arquivo contém:
    {
      ...,
      "features": {
        "custom-feature-title": "New custom UI"
      },
      ...
    }