Aplicativos
São os agrupadores dos aplicativos disponibilizados (conforme permissão) no menu lateral esquerdo da XPlatform. Dentro dessas divisões é possível encontrar Menus/Telas customizados ou até mesmo aplicativos externos.
Neste local podem ser cadastrados os aplicativos customizados,que são aqueles cadastrados pelo próprio tenant.
Importante
Quando a opção Credencias (withCredentials) for selecionada, na tela correspondente aparecerá a mensagem "Se marcado, seu token de acesso será exposto para soluções de terceiros. Tenha certeza que os componentes/sites são confiáveis.", para informar ao cliente de que o token será repassado para essa tela por motivos de segurança.
O que você precisa fazer:
- Acesse Tecnologia > Customização > Aplicativos;
- Clique em Adicionar aplicativo;
- Informe o Nome do aplicativo;
- Caso utilize a XPlatform em outros idiomas, informe a Chave de tradução para o nome do aplicativo, para poder traduzir o nome do módulo ao utilizar a função de tradução/internacionalização.
O conteúdo deste campo deve ser no modelo: platform.backend.custom_<chave_tradução>; - Selecione um ícone de sua preferência no campo Ícone e clique em Salvar.
- Acesse Tecnologia > Customização > Aplicativos;
- Clique sobre o aplicativo já criado e, em Ações, selecione Adicionar URL;
- Informe a URL de configuração e confirme essa alteração. Para adicionar essa configuração é necessário ter um arquivo de configuração .json disponibilizado em um servidor da empresa;
Se preferir, adicione o arquivo de configuração em formato JSON, em vez da URL. Caso este arquivo possua alguma alteração, é necessário adicioná-lo novamente. Para isso, clique em Ações e em Adicionar arquivo. Este arquivo deve ser disponibilizado em uma URL pública (acessível pela internet), com certificado digital válido.Exemplo:{
"menu": {
"children": [
{
"label": "Administração",
"labelI18n": "platform.backend.administration", //Utilizado para poder internacionalizar o menu customizado, é obrigatório começar com platform.backend.xxxxx
"children": [
{
"label": "Autenticação Duplo Fator",
"labelI18n": "platform.backend.authentication-twofactor",
"path": {
"category": "CurrentTab", //pode ser do tipo CurrentTab para abrir dentro da plataforma, NewTab para abrir em uma nova aba e DesktopNative para abrir via launcher
"menuId": "https://arq.senior.com.br/authentication/#/" //url do menu que se quer abrir, se for CurrentTab tem que ser https
},
"auth": {
"resource": "res://senior.com.br/platform/authentication/mfa_tenant_config", //recurso que será utilizado para validar a permissão, tem que pegar da tela de gestão de recursos
"permission": "Visualizar" //ação sobre o recurso que será utilizada para validar a permissão, também tem que pegar da gestão de recursos
}
}
]
}
]
}
}
- Para ocultar a URL já informada, clique no botão Ações ao lado e selecione Ocultar.
Após o exemplo, do item 3, é possível verificar todas a opções do que um config.json pode ter:
Depois realize as configurações do produto no arquivo config.json, localizado na pasta raiz do produto, conforme o exemplo em config.json.
Abaixo segue uma tabela com os itens e seus possíveis valores:
Propriedade | Definição | Valores | Exemplo | Obrigatória |
---|---|---|---|---|
domain | Nome do domain deste projeto | String | platform | Sim |
service | Nome do service deste projeto | String | frontend | Sim |
menu | Configurações do menu de contexto | Objeto JSON | ver "menu" no modelo | Sim |
Algumas das propriedades são objetos compostos e abaixo segue uma explicação de cada um deles.
Menu
Propriedade | Definição | Valores | Exemplo | Obrigatória |
---|---|---|---|---|
ID | Identificador do Item Agrupador do Menu | String | res://senior.com.br/menu/mydomain/mymenu | Não, mas recomendada |
label | Texto do Item Agrupador do Menu | String | Financeiro | Sim |
labelI18n | Chave de tradução do label do menu | String | platform.backend.my_domain_my_service_my_menu | Não |
children | Detalhes dos itens filhos do menu | Objeto JSON ver "children" no modelo | Sim |
Children
Propriedade | Definição | Valores | Exemplo | Obrigatória |
---|---|---|---|---|
ID | Identificador do Item do Menu | String | res://senior.com.br/menu/mydomain/myservice/mymenu | Não, mas recomendada |
label | Texto do Item do Menu | String | Consulta Dados do Cliente | Sim |
labelI18n | Chave de tradução do label do menu | String | platform.backend.my_domain_my_service_my_menu | Não |
itemIcon | Identificador do Ícone | String do FontAwesome | fa-google | Não |
itemType | Identificador do Tipo do Menu | String | teste | Sim |
auth | Detalhes da autenticação | Objeto JSON | ver "auth" no modelo | Não |
path | Detalhes do link do menu | Objeto JSON | ver "path" no modelo | Não |
help | Detalhes do help contextualizado | Objeto JSON | ver "help" no modelo | Não |
children | Detalhes dos itens filhos do menu | Chamada recursiva, filhos dos filhos (... dos filhos) | ver "children" no modelo | Não |
Auth
Propriedade | Definição | Valores | Exemplo | Obrigatória |
---|---|---|---|---|
resource | Identificador do Recurso no APIManager | String em formato res:// | res://senior.com.br/security/usermanager/usuario | Sim |
permission | Tipo de permissão necessário para o recurso para que o menu seja visível | String | Editar | Sim |
Path
Propriedade | Definição | Valores | Exemplo | Obrigatória |
---|---|---|---|---|
category | Identificador do Categoria na qual o item está cadastrado | Boxlet/Dashboard/CurrentTab/NewTab/NewWindow/DesktopNative | CurrentTab | Sim |
menuId | Caminho do item de menu | String | https://meuservidor.com.br/frontend/tela | Sim |
withCredentials | Se as credeciais (token e url de serviço) devem ser enviadas para a página | Boolean | true/false | Não |
Importante
Ao utilizar a propriedade withCredentials para obter os dados de autorização em telas customizadas, para o navegador Internet Explorer é necessário verificar as políticas de segurança do navegador, pois ele pode realizar o bloqueio do envio das informações de autorização para a tela customizada. Caso isso ocorra adicione os links de acesso as telas customizadas a lista de Sites confiáveis do Internet Explorer.
Help
Propriedade | Definição | Valores | Exemplo | Obrigatória |
---|---|---|---|---|
url | Caminho base para a documentação | URL Completa | http://documentacao.senior.com.br/ | Sim |
context | O contexto ao qual a ajuda deve se referir | String | gestaoempresarialerp/7.0.0/ | Não |
Para que um item de menu agrupador, declarado em mais de um config.json, seja unificado como sendo um item só (juntando os filhos declarados nos config.json), basta informar o mesmo ID. Caso o ID dos itens de menu não seja informado, será gerado um id baseado no ID do item pai e o label do menu. Porém, se o label for alterado no futuro, o ID também irá mudar e isso causará a perda da customizações deste item do menu. Por isso, é altamente recomendável que id seja informado.
Após isso os produtos deverão ser configurados junto com os módulos na frontend da plataforma.
Para editar ou remover um aplicativo, acesse Tecnologia > Customização > Aplicativos, selecione o aplicativo customizado e em Ações, selecione a opção desejada, Editar ou Remover.
Após criar um aplicativo, adicionar/ocultar uma configuração ou ainda para atualizar os itens de menu com base nas configurações, pressione o botão Gerar menu. Com isto, a estrutura do menu será feita de acordo com a última versão dos arquivos de configuração dos aplicativos configurados, considerando também as customizações feitas no menu.
Na edição do aplicativo, este recurso irá acionar somente a geração do menu do aplicativo específico no tenant logado.
Para ocultar o menu, acesse Tecnologia > Customização > Aplicativos, com usuário administrador:
- Selecione o menu que será ocultado;
- Clique em Ações e, em seguida, em Ocultar;
- Clique em Gerar menu ou em F5 para aplicar esta alteração
Nota
O menu possui mecanismo de cache, por isso após receber a notificação de sucesso pode levar um tempo para apresentar a mudança, além de ser necessário atualizar a página.