Árvore de páginas

O framework do Menu HTML está estruturado com base nos seguintes arquivos e artefatos disponbilizados:

 

Framework-services.js

Contém artefatos a serem chamadas pelos controllers que permitem o acesso e formatação a dados;

serviceHelper ('html-framework.Helper')

Agrupador de atributos e métodos que atendem à necessidades específicas;

formatDateToServer

Descrição: atributo que contém o formato de data esperado pelo servidor;

showLargeModal

Descrição: método que retorna se deve ou não apresentar a modal com a classe "modal-lg" do bootstrap;

formatMillisecondsDateToString

Descrição: formata a data informada de acordo com o padrao informado.

Parâmetro de entrada: data a ser formatada (tipo Long) e formato a ser aplicado (tipo String);

Parâmetro de saída: data formatada (tipo Date);

formatStringDateToServer

Descrição: converte uma data em formato string para um objeto do tipo Date.

Parâmetro de entrada: uma string com conteúdo em formato Data;

Parâmetro de saída: uma string formatada com o formato de data do atributo "formatDateToServer";

showRecordDetail

Descrição: método utilizado quando há uma lista hierárquica (item pai e item filho) para apresentar o detalhamento da linha selecionada;

Parâmetros de entrada:

  • ID da DIV pai do elemento selecionado (tipo String);
  • a classe CSS que contém a tabela detalhe (tipo String);
  • a decisão de mostrar a linha detalhe (tipo booleano);

Parâmetro de saída: booleano indicando se a linha de detalhe está visível ou não (tipo booleano);

validateForm

Descrição: efetua as validações de campos cadastradas para um form HTML;

Parâmetro de entrada: escopo do form a ser validado;

Parâmetro de saída: retorna se o form foi validado com sucesso (tipo booleano);

findIndexByKeyValue

Descrição: efetua a busca de um objeto dentro de uma lista;

Parâmetros de entrada:

  • objeto no qual será feita a busca;
  • chave a ser buscada, valor a ser buscado;

Parâmetro de saída: o índice do objeto procurado dentro da lista passada como parâmetro;

 

findValueByAttr

Descrição: efetua a busca de um valor a partir do nome do seu atributo;

Parâmetros de entrada:

  • nome do atributo;
  • objeto no qual será feita a busca;

Parâmetro de saída: o valor corresponde ao atributo pesquisado. Caso não encontre, retornará "undefined";

serviceFilterBy ('html-framework.FilterBy')

filterBy

Descrição: array de objetos que contém os filtros informados em tela, seja por busca avançada ou por busca rápida. Possui os atributos "property", "value", "label" e "labelValue";

addFilter

Descrição: método que adiciona uma clásula de filtro ao objeto "filterBy" que armazena os filtros de um controller;

Parâmetros de entrada:

    • nome do atributo a ser pesquisado (correspondente à classe Java da entidade);
    • valor do atributo a ser pesquisado;
    • label do filtro a ser exibido em tela;
    • valor do filtro a ser exibido em tela;

 

removeFilter

Descrição: método que remove uma cláusula específica da lista de filtros;

Parâmetros de entrada:

      • objeto de filtro a ser retirado (no formato do filterBy);
      • função de callback (tipo função do Javascript);
      • instância do objeto chamador (tipo objeto Javascript);

 

clearFilter

Descrição: método que remove toda a lista de filtros (objeto "filterBy");

Parâmetro de entrada: instância do objeto chamador (tipo objeto Javascript);

clearSearchModel

Descrição: método que remove a lista de filtros da busca avançada;

Parâmetros de entrada: instância do objeto chamador (tipo objeto Javascript);

 

clearDefaultData

Descrição: método que redefine todos os objetos padrões do controller para seus valores iniciais;

Parâmetros de entrada:

    • indicador de pesquisa rápida (tipo booleano);
    • instância do objeto chamador (tipo objeto Javascript);

 

addDateRangeFilter

Descrição: método que adiciona um filtro do tipo Data à lista de filtros;

Parâmetros de entrada:

    • data inicial em milissegundos;
    • data final em milissegundos;
    • nome do atributo a ser pesquisado (correspondente à classe Java da entidade);
    • label do filtro a ser exibido em tela;

 

Descrição: método que efetua a busca dos registros da entidade correspondente considerando tanto a busca rápida como a busca avançada. No caso da busca rápida, o método espera que a instância do objeto chamador possua o atributo "quickSearchProperites" que é uma string contendo os atributos sobre os quais deverá ser feita a busca sendo estes atributos separados por vírgula. O controller que chama este método deve herdar os métodos do serviço correspondente (através do comando "angular.extend") ou guardar o mesmo em uma variável de nome "service". A busca rápida será chamada através do método "quickSearch" somente se a variável do controller "quickSearchText" possuir valor, caso contrário será chamado o método "findRecords";

Parâmetros de entrada:

    • indicador de busca paginada, ou seja, a partir de um registro específico (tipo booleano, valor inicial "false");
    • instância do objeto chamador (tipo objeto Javascript, valor inicial é o controller que chamou o método);

processResultSearch

Descrição: método que atualiza a lista de dados retornados e exibidos em tela e também o total de registros da lista;

Parâmetros de entrada:

    • dados da lista (tipo objeto Javascript);
    • instância do objeto chamador (tipo objeto Javascript);

showAdvancedSearch

Descrição: método que exibe/esconde a DIV de pesquisa avançada;

Parâmetros de entrada:

    • indicador se deve mostrar a pesquisa avançada (tipo booleano);
    • instância do objeto chamador (tipo objeto Javascript);

serviceGeneric ('html-framework.generic.Service')

max

Descrição: atributo que define o número limtei de registros a ser retornado de uma busca (valor inicial 10);

 

orderBy

Descrição: array de string contendo os atributos pelos quais a consulta deve ser ordenada;

 

asc

Descrição: array de string dos atributos que devem ser ordenados de forma ascendente;

 

getRecord

Descrição: método que efetua a busca de um registro único de uma entidade;

Parâmetros de entrada:

    • id do registro dentro da entidade;
    • indicador booleano para trazer também as entidades marcadas como LAZY no Java;
    • instância do objeto chamador (tipo objeto Javascript);

Parâmetros de saída: objeto encontrado da entidade;

findRecords

Descrição: método que efetua a busca de um número determinado de registros de uma entidade;

Parâmetros de entrada:

    • índice do registro inicial (tipo inteiro);
    • número de registros a buscar (tipo inteiro);
    • objeto "filterBy" contendo os filtros a serem considerados, função de callback (objeto Javascript);

Parâmetros de saída: lista de objetos encontrada da entidade;

serviceGenericQuickSearch ('html-framework.generic-quick-search.Service')

 

quickSearch

Descrição: método que efetua a busca rápida com base em um valor informado. Na camada REST, irá executar o serviço "quickSeach";

Parâmetros de entrada:

    • índice do registro inicial (tipo inteiro);
    • número de registros a buscar (tipo inteiro);
    • array de string contendo os atributos da busca;
    • array de string contendo os valores de cada atributo a serem considerados na busca;
    • função de callback (objeto Javascript);

Parâmetros de saída: lista de objetos encontrado da entidade;

serviceGenericTypeahead ('html-framework.generic-typeahead.Service')

 

typeahed

Descrição: método que verifica se os atributos informados contêm o valor de busca informado. Na camada REST, irá executar o serviço "typeahead";

Parâmetros de entrada:

    • índice do registro inicial (tipo inteiro);
    • número de registros a buscar (tipo inteiro);
    • array de objeto "filter" (contendo atributos "property" e "value";
    • função de callback (objeto Javascript);

Parâmetros de saída: lista de objetos encontrado da entidade;


serviceGenericZoom ('html-framework.generic-zoom.Service')

 

zoom

Descrição: método que efetua a busca de dados oriundas de filtros de zoom. Na camada REST, irá executar o serviço "zoom";

Parâmetros de entrada:

    • índice do registro inicial (tipo inteiro);
    • número de registros a buscar (tipo inteiro);
    • array de objeto "filter" (contendo atributos "property" e "value";
    • função de callback (objeto Javascript);

Parâmetros de saída: lista de objetos encontrado da entidade;

 

serviceGenericCRUD ('html-framework.generic-crud.Service')

 

saveRecord

Descrição: método que cria um determinado registro na base;

Parâmetros de entrada:

    • entidade a ser salva (objeto Javascript);
    • função de callback (objeto Javascript);

Parâmetros de saída: objeto salvo na base;

updateRecord

Descrição: método que atualiza as informações de um registro na base;

Parâmetros de entrada:

    • id do objeto a ser atualizado;
    • entidade a ser salva (objeto Javascript);
    • função de callback (objeto Javascript);

Parâmetros de saída: objeto salvo na base;

deleteRecord

Descrição: método que remove um determinado registro na base;

Parâmetros de entrada:

    • id do objeto a ser removido;
    • função de callback (objeto Javascript);

Parâmetros de saída: objeto salvo na base;

serviceModal ('html-framework.generic.Modal')

 

init

Descrição: método que mostra e gerencia uma tela modal 

Parâmetros de entrada:

    • objeto de parâmetros a ser passados pra modal (tipo objeto javascript e registrado no framework como 'modalParams');
    • evento a ser disparado após o fechamento da modal (função do Javascript);
    • instância chamadora (objeto Javascript) para possível uso no evento de "close";
    • caminho do HTML que será chamado como tela modal (tipo string);
    • string do controller registrado que gerenciará a modal (tipo string);

Parâmetros de saída: instância da tela modal;

Framework-factories.js

Fazem a chamada aos serviços REST das entidades e disponibilizam o resultado aos serviços cadastrados;

factoryGeneric ('html-framework.generic.Factory')

 

Contém os métodos "findRecords" e "getRecord" que são chamados pelas respectivas funções do serviço 'html-framework.generic.Service' do framework-services.js.

factoryGenericQuickSearch ('html-framework.generic-quick-search.Factory')

 

Contém o método "quickSearch" que é chamado pela respectiva função do serviço 'html-framework.generic-quick-search.Service' do framework-services.js.

 

factoryGenericTypeahead ('html-framework.generic-typeahead.Factory')

 

Contém o método "typeahead" que é chamado pela respectiva função do serviço 'html-framework.generic-typeahead.Service' do framework-services.js.

 

factoryGenericZoom ('html-framework.generic-zoom.Factory')

 

Contém o método "zoom" que é chamado pela respectiva função do serviço 'html-framework.generic-typeahead.Service' do framework-services.js.

 

factoryGenericCRUD ('html-framework.generic-crud.Factory')

 

Contém o método "zoom" que é chamado pela respectiva função do serviço 'html-framework.generic-typeahead.Service' do framework-services.js.

factoryResourceLoader('html-framework.factoryResourceLoader')

 

Efetua o carregamento dos serviços REST disponibilizados a serem disponibilizados pela factory. Possui 2 métodos:

loadDefaultResources

Descrição: método que carrega os serviços padrões que o framework oferece para a factory;

Parâmetros de entrada: URL do serviço REST da entidade;

Parâmetros de saída: factory com os serviços carregados;

loadSpecificResources

Descrição: método que carrega serviços específicos para a factory, além dos serviços padrões disponibilizados pelo framework;

Parâmetros de entrada:

    • URL do serviço REST da entidade;
    • lista de objetos com os serviços adicionais (essa lista deve seguir o modelo do angular no parâmetro "actions" descrito aqui);

Parâmetros de saída: factory com os serviços carregados;

Index.js

Principal arquivo do framework do HTML Menu, que registra as funções que são utilizadas por todos os módulos dependentes do menu. O menu do HTML Framework já registra automaticamente algumas dependências opensource e também faz o controle dos dados enviados e recebidos pelo Framework. Os detalhes estão abaixo:

Dependências

Interceptadores HTTP

Serviço 'httpInterceptors'

Trata toda requisição HTTP que é retornada ao AngularJS. Quando ocorre algum erro HTTP ou quando o objeto de resposta não é um JSON válido, já é emitida mensagem automaticamente (usando a função "showMsg"). 

Para desabilitar a exibição automática das mensagens retornadas pelo serviço REST, basta criar o atributo "noErrorMessage" no objeto de retorno do serviço.

Lógica para TransformResponse da camada REST

Toda resposta válida de uma requisição HTTP passa pela transformação de dados (função transformResponse). O menu HTML sempre esperará um retorno do tipo JSON. 

Esta resposta deverá corresponder à classe "Return", existente na camada Java do HTML Framework. O objeto "Return" possui 3 propriedades:

    • "data": atributo do tipo Object que contém o resultado da requisição HTTP;
    • "messages": atributo do tipo Message (criado pelo HTML Framework) contendo mensagens a serem exibidas para o usuário;
    • "length": atributo do tipo inteiro contendo o número de registros retornados na requisição HTTP desconsiderando paginação;

Caso haja registros no atributo "messages", o menu HTML já irá exibi-los ao usuário automaticamente, sem necessidade de tratamento no Controller que o chamou. Caso não haja, o menu HTML retornará para o Controller o atributo "data" em formato JSON e injetará o atributo "length" no primeiro registro da coleção retornada no atributo "data".

Filtros de tradução 

filtro "i18n"

Filtro que efetua a tradução de uma determinada string existente no arquivo "translations.js";

filtro "htmlText"

Filtro que trata os caracteres especiais (ex: "ã", "ó") para serem exibidos corretamente na página HTML;

filtro "dateFormat"

Filtro que formata uma data em milissegundos para o formato especificado na string de tradução "formatDate";

filtro "booleani18N"

Filtro que formata a exibição de valores booleanos considerando a tradução parametrizada no framework;

loadedModules 

Artefato registrado para controlar as funcionalidades disponíveis para cada módulo. É composto de:

openModules

Contém a lista de funcionalidades que foram executadas pelo usuário e abertas em abas. Seus atributos são:

  • name: nome da aba exibida no menu;
  • url: caminho exibido no navegador para cada aba;
  • controllerName: string utilizada para registrar o controller;
  • controller: a instância do controller;
  • active: indica se a aba está selecionada ou não. Só haverá uma aba selecionada;

contextModules

Contém os dados específicos de cada aba aberta pelo usuário;

menuOptions

Contém os dados de cada módulo registrado para ser utilizado pelo framework do HTML Menu;

translationsCalled

Objeto que contém as traduções carregadas para cada módulo;

startModule

Função que abre uma nova aba no menu, caso ela já não exista. Seus parâmetros são:

  • name: nome da aba a ser exibido em tela;
  • controllerName: identificador do controller (string com a qual ele foi registrado);
  • controller: instância do controller em si (ou o $scope se não estiver sendo utilizado controllerAs);

A função retorna "true" caso seja necessário a inicialização do contexto, que é o caso na primeira
execução.

select

Função que seleciona uma aba já aberta. O parâmetro de entrada é a URL da aba;

updated

Função que dispara um evento 'loadedModules.update' para possibilitar um posterior tratamento após a criação de uma aba;

getPageActive

Função que devolve o objeto "openModules" da aba que estiver selecionada;

moduleOptions

Função que alimenta o objeto "menuOptions". Os parâmetros de entrada são:

    • moduleID: id do módulo do qual serão gravados os dados;
    • options: objeto referente ao módulo que deverá ser persistido;

getTranslationsByModule

Função que devolve todas as traduções de um determinado módulo. O parâmetro de entrada é o módulo registrado (primeira string após o caminho de contexto do menuHTML);

saveContext

Função que salva as informações necessárias de determinada aba já aberta para que, quando o usuário possa trocar de aba, ela possa ser recarregada preservando seu status.

removeModule

Função que remove os dados de determinada aba do objeto "openModules". Recebe como parâmetro a URL da aba a ser removida.

 

sessionContext 

Artefato registrado para disponibilizar funções diversas para as aplicações que estão registradas no HTML menu. É composto de:

browserDialect

Atributo que retorna o idioma do browse.

i18n

Função que efetua a tradução de uma string informada (e que exista no arquivo "translations.js") já no idioma parametrizado.

formatDate

Função que efetua a formatação de uma string com conteúdo data para um formato informado. Executará o filtro "dateFormat".

notify

Função que emitirá alertas em tela com duração de 5 segundos para notificar o usuário de algum evento. Chamará a função "showNotify" do serviço 'messageHolder' registrado. Os parâmetros de entrada são:

  • type: 'info' para uma informação; 'warning' para um alerta; 'error' para erro;
  • title: título da notificação;
  • detail: texto detalhe da notificação;

messageHolder

Serviço registrado para emissão de mensagens e notificações. É composto de:

showQuestion

Função para exibir uma modal com um questionamento ao usuário. Recebe como parâmetros:

  • title: string existente no arquivo "translations.js" que indica o título da modal;
  • msgQuestion: string existente no arquivo "translations.js" que indica a mensagem de questionamento ao usuário;
  • confirmLabel: string existente no arquivo "translations.js" que indica o label da ação de "OK";
  • cancelLabel: string existente no arquivo "translations.js" que indica o label da ação de "Cancelar";
  • callback: função Javascript para efetuar o tratamento da resposta do usuário. A resposta será gravada como o atributo "result" da função de callback;

 

showNotify

Função que efetua a notificação rápida ao usuário quanto a eventos ocorridos no sistema sem abrir uma tela modal. Recebe como parâmetro um objeto "alerts" que possui os atributos especificados na função "notify".

showMsg

Função que exibe uma modal de informação para o usuário. Recebe como parâmetros:

msg: string existente no arquivo "translations.js" que representa o texto resumido da mensagem;

detail: string existente no arquivo "translations.js" que representa o texto detalhado da mensagem;

title: string existente no arquivo "translations.js" que representa o título da modal;

 

 

  • Sem rótulos