...
Nota |
---|
|
Mesmo utilizando a função setEnable, ainda existe a possibilidade de algum usuário conseguir visualizar informações do campo formulário oculto, utilizando de recursos como a ferramenta de inspeção de código dos navegadores. |
...
...
utilizar o evento enableFields para proteger os campos, é adicionado o caractere underline (_) nas propriedade name e id. Com isso as manipulações via JavaScript puro ou pela biblioteca jQuery não terão efeitos, devido a alteração destas propriedades: Exemplo enableFields.js:
|
Bloco de código |
---|
|
function if ( form.getFormMode() != 'ADD' ){
parseInt(getValue('WKNumState'));
if(atividade == 0 || atividade == 4){
form.setEnabled( | "rnc_cod_ocorrencia",false, true'loginsolicitante', false);
}
| } |
Também é possível utilizar o método setEnhancedSecurityHiddenInputs, que faz com que todos os campos desabilitados pelo método setEnabled fiquem protegidos:
if(atividade == 5){
form.setEnabled('nomesolicitante', false);
}
} |
HTML: Bloco de código |
---|
<div class="panel-body"> |
|
Bloco de código |
---|
|
function enableFields(form) {
if ( form.getFormMode() != 'ADD' ){
form.setEnhancedSecurityHiddenInputs(true);
<div class="row inicial" id="inicialRow0">
<div class="col-xs-12 col-md-2 col-sm-12 col-lg-2">
<div class="form-group">
<label class="control-label" for="loginsolicitante">Login</label>
<input type="text" class="form-control" name="loginsolicitante" id="loginsolicitante" value="adm"/>
</div>
</div>
<div class="col-xs-12 col-md-4 col-sm-12 col-lg-4">
<div class="form-group">
<label class="control-label" for="nomesolicitante">Solicitante</label>
<input type="text" class="form-control" name="nomesolicitante" id="nomesolicitante" value="Administrador"/>
</div>
</div>
</div>
</div> |
Resultado no navegador/console, onde o campo loginsolicitante agora é _loginsolicitante e o campo nomesolicitante permanece igual, pois a lógica implementada indica que será bloqueado na próxima movimentação: Image Added |
Protegendo campos desabilitados
Ao proteger um campo desabilitado, ele não terá o seu valor alterado no registro de formulário. Para isso, informe o valor true para o parâmetro protect do método setEnabled conforme o exemplo abaixo:
Bloco de código |
---|
|
function enableFields(form) {
if ( form.getFormMode() != 'ADD' ){
form.setEnabled("rnc_cod_ocorrencia",false, true);
}
} |
Também é possível utilizar o método setEnhancedSecurityHiddenInputs, que faz com que todos os campos desabilitados pelo método setEnabled fiquem protegidos:
Bloco de código |
---|
|
function enableFields(form) {
if ( form.getFormMode() != 'ADD' ){
form.setEnhancedSecurityHiddenInputs(true);
form.setEnabled("rnc_cod_ocorrencia",false);
}
} |
Nota |
---|
|
O método setEnhancedSecurityHiddenInputs só protegerá campos desabilitados após a sua execução no evento e quando o formulário estiver no contexto de uma execução de processo. |
inputFields
...
Esse evento é disparado no momento em que os dados do formulário são passados para a BO responsável por formulário do fluig. O evento recebe como parâmetro uma referência ao formulário da definição de formulário.
Exemplo:
Bloco de código |
---|
|
function inputFields(form){ form.setEnabled("rnc_cod_ocorrencia",false);
}
} |
Nota |
---|
|
O método setEnhancedSecurityHiddenInputs só protegerá campos desabilitados após a sua execução no evento e quando o formulário estiver no contexto de uma execução de processoevento inputFields não foi criado para ser utilizado na "Movimentação em Bloco", seu foco é o tratamento de campos que vem do navegador. Esse evento é disparado no momento em que os dados do formulário são passados para a BO responsável por formulário do fluig. O evento recebe como parâmetro um objeto do tipo FormController. Painel |
---|
borderColor | #f2f2f2 |
---|
bgColor | #f2f2f2 |
---|
| O getValue não é utilizado em evento de formulário inputFields. |
Este evento pode ser usado para que as datas persistidas por formulários customizados sejam salvas corretamente. Hoje no sistema as datas salvas através de formulários pelo navegador Chrome tem o padrão americano (yyyy-mm-dd), enquanto as datas nos demais navegadores tem o padrão brasileiro (dd/mm/yyyy). Para empresas que utilizam múltiplos navegadores e querem que os dados de data estejam padronizados, recomendamos a utilização do evento inputFields com o seguinte trecho de código. Bloco de código |
---|
language | js |
---|
title | Código para Datas |
---|
| function inputFields(form) {
var regEx = /^\d{4}-\d{2}-\d{2}$/;
if (form.getValue("dt_solicitacao").match(regEx)) {
var split = form.getValue("dt_solicitacao").split('-');
form.setValue("dt_solicitacao", split[2] + '-' + split[1] + '-' + split[0]);
}
} |
|
validateForm
...
Esse evento é disparado antes da gravação dos dados do formulário. O evento recebe como parâmetro um objeto do tipo FormController.
...
Nota |
---|
|
Este método só é executado caso haja a abertura da tela de movimentação, o que leva em consideração se há mais de uma atividade destino ou o mecanismo de atribuição da próxima tarefa. E também não é considerada em movimentações via api, ou diretamente no formulário pela navegação de documento. Utilize o validateForm em conjunto com esse método para garantir a integridade das validações |
beforeSendValidate
...
Assim como beforeMovementOptionscomo beforeMovementOptions, este este evento acontece ao clicar em "enviar" no navegador para executar a movimentação em si. Ou seja, depois do beforeMovementOptions e independente da tela de seleção de atividade/usuário destino.
...