Runtime

Como configurar o cabeçalho e o rodapé das interfaces?

RT.FAQ-8201
O cabeçalho e rodapés das páginas do sistema são regidos pelos parâmetros de configuração "APP.UI.HEADER_CONTENT" e "APP.UI.FOOTER_CONTENT" que contém o respectivo código HTML. Estes códigos permitem o uso de placeholders identificados na forma ${nome}. Os placeholders disponíveis devem estar registrados na classe PlaceHoldersMap. Por padrão, a T2 registra automaticamente os seguintes placeholders:


Importante

Caso esta configuração seja realizada por preferencia de sistema e a replicação estiver ativada, as configurações serão atualizadas em todas as bases replicadas.
Para que isto não ocorra, deve-se utilizar as configurações em arquivos .css, por instância de sistema - ver FAQ 8203.

Como criar placeholder customizados

Para criar novos placeholders com conteúdos específicos para uma aplicação, deve-se simplesmente registrar um objeto na classe PlaceHoldersMap. Este registro deve ser feito preferencialmente na inicialização do sistema (evento ON_START de algum sub-sistema). O placeholder é apenas um objeto cujo método toString() retorna o conteúdo desejado.

Exemplo:
Digamos que se deseja criar um placeholder que apresente o nome do banco de dados em uso:
PlaceHoldersMap.getInstance().put("build", new Object() {
   @Override
   public String toString() {
       BaseRuntime ctx = BaseRuntime.getContext();
       try {
           return ctx.getDbName();
       } catch (AdsException ignore) { }
       return "";
   }
});

Notas:

Valor default para APP.UI.HEADER_CONTENT

${logo}
<nav id=\"main\">${menu}</nav>
<section class=\"user-options\">${auth}</section>

Valor default para APP.UI.FOOTER_CONTENT

<section class=\"global-name\">${globalName}</section>
<section class=\"version\">${version}</section>
<section class=\"current-time right\">${time}</section>
${notifications}


Sugestão de código para o footer do Eligo

Criar preferência de sistema APP.UI.FOOTER_CONTENT com o seguinte conteúdo:
<table width="100%">
<tr>
<td>
<section class="global-name">${globalName}</section><section class="version">v${version}</section>
<section class="build">(${build})</section>
<section class="memory-usage">Memory used: ${memoryUsage}</section>
</td>
<td>
<section class="current-time">${time}</section>
</td>
<td>${notifications}
</td>
<td align="right">
<section class="links">
<ul>
<li>
<a href="http://www.prd.inf.br/wiki/index.php?title=${interfaceName}" target="_blank">Documentação</a>
</li>
<li>
<a href="http://www.prd.inf.br/suporte/client.php?locale=pt-br&name=${user} (${company})" target="_blank">Atendimento on-line</a>
</li>
<li>
<a href="http://www.prd.inf.br" target="_blank">PRD Tecnologia de Gestão</a></li>
</ul>
</section>
</td>
</tr>
</table>