DATASET: dsUsuariosPorGrupo
Iremos utilizar o reloadZoomFilterValues para nos ajudar a filtrar os usuários que pertencem a determinado Grupo em um campo Zoom baseado no dataset dsUsuariosPorGrupo.
O campo que estaremos nos baseando para a construção desse exemplo será o Gestor Imediato do processo 22-TI_ACESSOS.
Campo no HTML:
<label title="Grupo 22-TI_ACESSOS-GESTOR_IMEDIATO">Gestor Imediato</label><span class="required text-danger"><strong>*</strong></span>
<input title="ds_atendente_acessos" class="form-control" placeholder="Gestor Imediato" type="zoom" zoomvalue="colleagueId"
dataset="dsUsuariosPorGrupo" datasetvalue="colleagueName" id="gestor_altAcesso" name="gestor_altAcesso" data-zoom="{
'displayKey':'colleagueName',
'datasetId':'dsUsuariosPorGrupo',
'maximumSelectionLength':'1',
'placeholder':'Escolha um usuário',
'filterValues':'active,true',
'fields':[{
'field':'colleagueId',
'label':'Matrícula'
},{
'field':'colleagueName',
'label':'Nome'
}]
}">
Criação do Grupo:
A atribuição do usuário será determinado pelo grupo, o padrão para nomenclatura segue:
XX-PROCESSO-NOME_DO_CAMPO
-
Criamos o nosso grupo baseado no "Processo + Nome do Campo"
-
Inserimos os usuários que pertencem ao grupo
-
Resultado
Implementação da filtragem XX-PROCESSO.js:
Iremos chamar a função do reloadZoomCarregado logo no inicio do nosso arquivo.js onde será executado assim que o javascript estiver pronto
/* 22-TI_ACESSOS.js */
$(document).ready(function () {
setFilterZoom();
reloadZoomCarregado("gestor_novoAcesso","22-TI_ACESSOS-GESTOR_IMEDIATO")
reloadZoomCarregado("gestor_altAcesso","22-TI_ACESSOS-GESTOR_IMEDIATO")
});
...
function reloadZoomCarregado(campo, grupoSelecionado) {
if (window[campo].element) {
reloadZoomFilterValues(campo, `groupId,${grupoSelecionado}`);
return true;
} else {
setTimeout(() => { reloadZoomCarregado(campo, grupoSelecionado); }, 300);
}
}