Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Esse evento é disparado no momento em que os objetos do formulário são apresentados. O evento recebe como parâmetro um objeto do tipo FormController e um parâmetro customHTML que serve para personalizar é e inserir dados diretamente do servidor no formulário

...

Nota
titleFique atento!

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.

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:

Aviso
titleAtenção

Ao 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
Bloco de código
languagejs
 function
 enableFields(form) {

 var atividade = 
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
languagejs
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
languagejs
 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
languagejs
function enableFields(form) { 
    if ( form.getFormMode() != 'ADD' ){   
		form.setEnhancedSecurityHiddenInputs(true); 
        form.setEnabled("rnc_cod_ocorrencia",false);
    }
}
Nota
titleAtenção!

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
languagejs
function inputFields(form){    form.setEnabled("rnc_cod_ocorrencia",false);
    }
}
Nota
titleAtenção!

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
languagejs
titleCó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
titleFique atento!

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.

...