Descrição

O componente gumga-query-filter-ng é utilizado para executar pesquisas simples ou avançadas. Na busca simples pode escolher quais campos serão pesquisados pelo termo de entrada, já na pesquisa avançada, você pode adicionar tipos aos campos e concatar outros campos intercalando com operadores "E" ou "OU" entre cada um. Após query montada, o componente gera um hql que é enviado ao servidor

Instalação

// npm
npm i gumga-query-filter-ng --save

// bower
bower install gumga-query-filter-ng --save

// HTML
<script src="node_modules/gumga-query-filter-ng/dist/gumga-query-filter.min.js"></script>
// ou
<script src="bower_components/gumga-query-filter-ng/dist/gumga-query-filter.min.js"></script>
Usando
<gumga-query
  search-text="Pesquisar"
  use-gquery="true"
  search="pessoas.methods.searchWithGQuery(param)"
  advanced-search="pessoas.methods.searchWithGQuery(param)">
  <search-field field="name" label="Nome"></search-field>
  <search-field field="age" label="Idade" select="true"></search-field>
  <search-field field="end.bairro" label="Bairro" left-join="enderecos as end"></search-field>
  <advanced-search-field type="string" label="Nome" field="nome"></advanced-search-field>
  <advanced-search-field type="number" label="Idade" field="idade"></advanced-search-field>
  <advanced-search-field type="float" label="Peso" field="peso"></advanced-search-field>
  <advanced-search-field type="money" label="Preço" field="preco"></advanced-search-field>
  <advanced-search-field type="cpf" label="CPF" field="cpf"></advanced-search-field>
</gumga-query>
angular
  .module('app', ['ui.bootstrap', 'gumga.rest', 'gumga.controller', 'gumga.genericfilter', 'gumga.queryfilter'])
  .controller('Ctrl', ['gumgaController', 'GumgaRest', '$scope', '$http', function (gumgaController, GumgaRest, $scope, $http) {
    var PessoaService = new GumgaRest('host-api');
    gumgaController.createRestMethods($scope, PessoaService, 'pessoas');
    $scope.pessoas.methods.get();

    $scope.simple = function (field, param) {
      console.info('GumgaQuery', 'Field: ' + field + ', Valor:' + param)
    }

    $scope.advanced = function (value) {
      console.info('GumgaQuery', 'Value: ', value)
    }
  }])
Atributos
Parâmetro Tipo Requerido Descrição
use-gquery Boolean Não Parâmetro usado para ativar/desativar o uso do GQuery.
search Function Sim Parâmetro que irá conter uma função que será utilizada para executar a busca simples.Os parâmetros field e param são obrigatórios.
advanced-search Function Não Parâmetro que irá conter uma função que será utilizada para executar a busca avançada. O parâmetro param é obrigatório.
search-text String Não Parâmetro que irá conter uma string que será utilizada como label para o botão de pesquisa.
saved-filters Function Não Deve retornar um Array com uma lista de queries salvas.
save-query Function Não Função que salva a querie montada no componente.
Search Field
Parâmetro Tipo Requerido Descrição
field String Sim Atributo que será utilizado na busca HQL.
label String Não Rótulo que aparecerá na opção selecionada
select Boolean Não Indica se o search-field virá selecionado por padrão
type String,Number,Boolean Não Tipo do field buscado no HQL
inner-join String Não Recebe um HQL Inner Join. Pode ser utilizado somente se a opção use-gquery estiver ativa.
left-join String Não Recebe um HQL Left Join. Pode ser utilizado somente se a opção use-gquery estiver ativa.
ignore-case Boolean Não Ignorar letras maiúsculas. Por padrão está ativo
translate Boolean Não Ignorar acentuação. Por padrão está ativo
Advanced Search Field
Parâmetro Tipo Requerido Descrição
field String Sim Atributo que será utilizado na busca HQL.
label String Não Rótulo que aparecerá na opção selecionada
type String,Number,Boolean Não Tipo do field buscado no HQL
inner-join String Não Recebe um HQL Inner Join. Pode ser utilizado somente se a opção use-gquery estiver ativa.
left-join String Não Recebe um HQL Left Join. Pode ser utilizado somente se a opção use-gquery estiver ativa.
ignore-case Boolean Não Ignorar letras maiúsculas. Por padrão está ativo
translate Boolean Não Ignorar acentuação. Por padrão está ativo