Histórico da Página
...
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âmetros 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âmetros 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;
search
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 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
...
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.
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 os seguintes artefatos: jQuery (http://jquery.com/), toaster (http://ngmodules.org/modules/AngularJS-Toaster), flot (http://www.flotcharts.org/), Bootstrap (http://getbootstrap.com/), datePicker (http://www.eyecon.ro/bootstrap-datepicker/), ui-select (https://github.com/angular-ui/ui-select), angular-file-upload (https://github.com/danialfarid/angular-file-upload), angular ui-mask (http://angular-ui.github.io/ui-utils/#/mask), autoNumeric (http://plugins.jquery.com/autoNumeric/), paper (http://paperjs.org/);
Os demais artefatos que o menu HTML disponibiliza são:
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.
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;
State e roteamento
sessionContext
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 HTML menu. Seus parâmetros são:
- name: nome da aba a ser exibido em tela;
- controllerName: string utilizada para registrar o controller;
- controller: instância do controller em si;
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:
...
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
- jQuery (http://jquery.com/)
- toaster (http://ngmodules.org/modules/AngularJS-Toaster)
- flot (http://www.flotcharts.org/)
- Bootstrap (http://getbootstrap.com/)
- bootstrap-datepicker (http://www.eyecon.ro/bootstrap-datepicker/)
- select (https://github.com/angular-ui/ui-select)
- angular-file-upload (https://github.com/danialfarid/angular-file-upload)
- angular ui-mask (http://angular-ui.github.io/ui-utils/#/mask)
- autoNumeric (http://plugins.jquery.com/autoNumeric/)
- paper (http://paperjs.org/)
- bootstrap-timepicker (http://jdewit.github.io/bootstrap-timepicker/)
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;
...
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.
Tratamento de erros
...