O RealizeJS possui algumas configurações padrão definidas em sua implementação, abaixo será apresentado cada uma delas e como fazer alterações.
Onde encontrá-las
As configurações estão descritas no arquivo config.js.
restUrls
Nessa propriedade é definido os caminhos para chamadas REST. Os símbolos :url e :id são trocados dinamicamente por seus respectivos valores de acordo com as propriedades do componente. Ela é utilizada nos componentes Grid e GridForm, para definir as URLs das ações padrão de CRUD.
restUrls: {
index: ':url',
show: ':url/:id',
add: ':url/new',
create: ':url',
edit: ':url/:id/edit',
update: ':url/:id',
destroy: ':url/:id'
}
restMethods
Propriedade que define os métodos do protocolo HTTP utilizado para cada ação definida na configuração restUrls.
restMethods: {
index: 'GET',
show: 'GET',
add: 'GET',
create: 'POST',
edit: 'GET',
update: 'PUT',
destroy: 'DELETE'
}
Grid
Propriedades globais utilizadas pelo componente Grid, para as funcionalidades de paginação e ordenação.
grid: {
pagination: {
param: 'p',
perPageParam: 'per_page',
perPage: 20,
window: 4,
type: 'default',
perPageOptions: [
{ name: '10', value: 10 },
{ name: '20', value: 20 },
{ name: '50', value: 50 }
]
},
sort: {
param: 's',
directionParam: 's_dir',
fieldValueFormat: '%{field}'
}
}
pagination
Especificação do funcionamento de cada um dos atributos do objeto grid.pagination. Alguns deles podem ser alterados diretamente no componente GridPagination, como pode ser visto no exemplo a seguir. Neste exemplo é criado um componente customizado, o GridPaginationExample. Em seu estado é atribuido as configurações sobrescritas que serão enviadas para o componente GridPagination.
param String
Nome do parâmetro na query string que define em qual página está o Grid para o back-end.
default: 'p'
url?p=1
perPage Number e perPageParam String
perPage é quantidade de itens a serem exibidos por página no Grid, e perPageParam é o nome do parâmetro na query string onde essa informação é enviada para o back-end.
perPage default: 20
perPageParam default: 'per_page'
url?per_page=20
window Number
Tamanho da janela de exibição da paginação.
default: 4
type String
Propriedade utilizada na renderização dos campos de paginação. São aceitos os valores default e input. No caso default, será apresentado os botões com os números (e dependendo da página, ir para primeira página e/ou ir para última página). No caso input, é renderizado um campo para o usuário inserir a página que deseja ir.
default: 'default'
perPageOptions Array
É utilizado para montar o select de opções da quantidade de itens exibidos por página (altera o valor do perPage) dentro do componente GridPagination.
default: [
{ name: '10', value: 10 },
{ name: '20', value: 20 },
{ name: '50', value: 50 }
]
sort
Descrição da funcionalidade dos atributos do objeto grid.sort.
param String
Nome do parâmetro na query string onde será enviado para o back-end qual campo deve ser ordenado no componente Grid. Dependendo da configuração (fieldValueFormat), o valor da direção da ordenação também pode ser enviado por esse parâmetro.
default: 's'
default:
url?s=created_at
sort: {
param: 'sorting'
}
url?sorting=created_at
directionParam String
Nome do parâmetro na query string que define qual será a direção da ordenação do componente Grid.
default: 's_dir'
default:
url?s_dir=asc
sort: {
directionParam: 'sorting_direction'
}
url?sorting_direction=asc
fieldValueFormat String
Padrão utilizado para gerar o valor do parâmetro de ordenação enviado para o back-end (definido em param). O código que utiliza este padrão pode ser encontrado em Grid, no método parseSortPostDataValue.
default: %{field}
default:
url?s=created_at&s_dir=desc
sort: {
fieldValueFormat: '%{field},%{direction}'
}
url?s=created_at,desc
Como alterar essas configurações
O Realize provê a função setConfig para a customização dessas configurações no seu objeto global. A seguir é apresentando um exemplo de uso desta função.
Realize.setConfig(
{
restUrls: {
destroy: ':url/delete/:id'
},
restMethods: {
add: 'PUT'
},
grid: {
pagination: {
param: 'pagination',
perPageParam: 'per_table',
perPage: 10,
window: 2,
},
sort: {
param: 'sort',
}
}
}
);