Defeito #237
Ordenar arrays no formulário de funcionário
100%
Descrição
Na interface de manutenção de funcionário, os arrays de dados utilizados nos campos lista de seleção, estão desordenados. Por exemplo o array de localidades.
Revisar e alterar a ordenação das listas de opções, em todos os formulários do organograma.
OBS: As listas são geradas ordenadas alfabeticamente no PHP, porém, antes do Javascript construir a lista de seleção, ele ajusta as listas em um array cujo índice é o ID e o valor é a descrição que será apresentada no selectbox.
Por exemplo, o PHP gera uma lista de organizações conforme o array:
$organizacao[0]['organizacao_id'] = 15 $organizacao[0]['sigla'] = 'APPA' $organizacao[0]['descricao'] = 'Administração dos Portos de Paranaguá e Antonina' $organizacao[0]['ativa'] = 'S' $organizacao[1]['organizacao_id'] = 1 $organizacao[1]['sigla'] = 'CELEPAR' $organizacao[1]['descricao'] = 'Companhia de Tecnologia da Informação e Comunicação do Paraná' $organizacao[1]['ativa'] = 'S' $organizacao[2]['organizacao_id'] = 45 $organizacao[2]['sigla'] = 'DER' $organizacao[2]['descricao'] = 'Departamento de Estradas de Rodagem' $organizacao[2]['ativa'] = 'S'
O array $organizacao é de tamanho 3, sendo que cada item é um array com os dados de cada organização. Ou seja, o Javascript recebe esta matriz ordenada.
O motivo de estar desordenando esta lista é que quando o Javascript a recebe, está alterando para um array em que o índice é a propriedade 'organizacao_id' e o valor é a 'sigla', ficando semelhante a:
$items[1] = 'CELEPAR' $items[15] = 'APPA' $items[45] = 'DER'
Para o Javascript, isto é um array de tamanho 46 contendo "buracos" nas posições do array que não possuem valor. Portanto, este array acaba ficando ordenado pela propriedade 'ocorrencia_id'.
A solução será ajustar o Javascript para que seja montada uma matriz padronizada para que o método 'constructSelectBox' extraia corretamente a propriedade que deverá ser o índice e a que será o valor. Isto é, o método 'constructSelectBox' deverá receber uma matriz semelhante a:
$items[0]['id'] = 15 $items[0]['value'] = 'APPA' $items[1]['id'] = 1 $items[1]['value'] = 'CELEPAR' $items[2]['id'] = 45 $items[2]['value'] = 'DER'
Revisões associadas
Issue #237 - Ajustada a montagem do array que e utilizado na construcao do selectbox
Histórico
#1 Atualizado por Mauricio Luiz Viani há aproximadamente 6 anos
- Versão alterado de Backlog para Expresso Livre - Milestone 22
#2 Atualizado por Anderson Tadayuki Saikawa há aproximadamente 6 anos
- Descrição atualizado(a) (diff)
#3 Atualizado por Anderson Tadayuki Saikawa há aproximadamente 6 anos
- % Terminado alterado de 0 para 80
- Situação alterado de Nova para Resolvida
#4 Atualizado por Mauricio Luiz Viani há aproximadamente 6 anos
- Atribuído para ajustado para Anderson Tadayuki Saikawa
- Situação alterado de Resolvida para Fechada
- % Terminado alterado de 80 para 100