Ticket #1548 (closed defeito: fixed)
Erro na exibição de subpastas
Reported by: | cesar.vianna | Owned by: | thiagoaos |
---|---|---|---|
Priority: | normal | Milestone: | Expresso 2.2.0-pre2 |
Component: | ExpressoMail | Version: | branch 2.2 |
Severity: | média | Keywords: | |
Cc: | WorkGroup: | Centro de Testes |
Description
Quando o Expresso possui mais de uma pasta com hífen e mesmo prefixo, ocorre erro na exibição de sub-pastas.
Para simular:
- Crie uma pasta com o nome exemplo-teste e outra com o nome exemplo-teste2.
- Na segunda pasta crie sub-pasta(s).
- Renomeie a pasta exemplo-teste2 para exemplo.
- As subpastas não serão mais exibidas.
- Caso seja renomeada a pasta exemplo-teste, removendo o hífen, as subpastas aparecerão.
Change History
comment:2 Changed 13 years ago by thiagoaos
- Status changed from new to closed
- Resolution set to fixed
[3761] - Corrigido exibição de subpastas na arvore de editar pastas do expressoMail
Como existe um possível bug na API do PHP que não reconhece que uma pasta tem subpastas quando se tem a seguinte estrutura, eu resolvi detalhar mais o problema.
Exemplo da estrutura de pastas:
exemplo
subPasta1 subPasta2
exemplo-pasta2
Por algum motivo, quando se tem duas pastas com o mesmo “prefixo” na pasta que não tem o underscore, quando retornada via a função nativa do PHP imap_getmailboxes, vem com a flag has_no_children ( bit 64 ), sendo que era para vim com a flag has_children ( bit 32 ).
Por se tratar de um possível bug na API, eu corrigir de uma forma que não é a ideal, através de um outro artifício via javascript.
Como toda pasta tem o seu “caminho”, como exemplo /pasta/subpasta/subsubpasta …, foi possível identificar se uma pasta tem subpastas ou não e com isso adicionar o sinal de “ + “ para esconder e mostrar as subpastas.
O bug pode ser encontrado na chamada da função imap_getmailboxes() dentro do método expressoMail1_2.imap_functions.get_folders_list().