Ticket #1190 (closed defeito: fixed)
Erro ao carregar o módulo ExpressoMail
Reported by: | diogenesduarte | Owned by: | diogenesduarte |
---|---|---|---|
Priority: | alta | Milestone: | Expresso 2.2 |
Component: | ExpressoMail | Version: | branch 2.2 |
Severity: | grave | Keywords: | PRODEB mensagens locais connector |
Cc: | WorkGroup: |
Description (last modified by rafaelraymundo) (diff)
O módulo expressoMail dispara uma exceção e não carrega caso seja selecionada a opção de utilizar mensagens locais em minhas preferências. Isso ocorre devido a alteração do ticket #1145, especificamente na revisão [3068], em que são removidos os includes dos arquivos de mensagens locais em index.php e não é chamado em momento algum a função loadScript para carregar os objetos em questão.
Change History
comment:3 Changed 14 years ago by diogenesduarte
- Status changed from new to closed
- Resolution set to fixed
Resolvido em [3219]. Os objetos de mensagens locais voltam a ser carregados em index.php. Por conta do carregamento dos objetos via loadScript ser assíncrono no firefox, a melhor forma é carregar esse objetos logo ao iniciar o módulo, pois não corremos o risco de ele ser chamado antes mesmo de existir, enquanto está sendo baixado. Quanto ao fato de não carregá-los caso o usuário não use mensagem local, esse tratamento é feito no próprio index.php.
comment:4 follow-up: ↓ 5 Changed 14 years ago by rafaelraymundo
- Description modified (diff)
Olá eduardoalex!
Após o Commit [3220] feito em:
branches/2.2/expressoMail1_2/js/draw_api.js
Ocorreu um erro de javascript ao importar mensagens. O erro ocorre no momento de selecionar uma pasta. Isso está sendo tratado?
comment:5 in reply to: ↑ 4 ; follow-up: ↓ 7 Changed 14 years ago by diogenesduarte
Cara, acabei de importar duas mensagens sem problema na revisão [3220] e consegui sem erros. Será que não tem a ver com um fonte em específico? Tem como você mandar o fonte que você testou para testarmos aqui?
Replying to rafaelraymundo:
Olá eduardoalex!
Após o Commit [3220] feito em:
branches/2.2/expressoMail1_2/js/draw_api.jsOcorreu um erro de javascript ao importar mensagens. O erro ocorre no momento de selecionar uma pasta. Isso está sendo tratado?
comment:6 follow-up: ↓ 8 Changed 14 years ago by amuller
Por favor rever o commit 3220 pois as chamadas dos scripts não eram desnecessária. Pois é justamente o carregamento do script sob-demanda. De forma que quem não está utilizando mensagens locais não consegue ler mensagens, porque não carregou messages_controller.js.
Já quem está usando msgs_locais carrega no index.php do EM. O que também é desaconselhável porque perde o carregamento sob-demanda.
comment:7 in reply to: ↑ 5 ; follow-up: ↓ 9 Changed 14 years ago by rafaelraymundo
O problema está ocorrendo também ao tentar abrir qualquer email. O Firebug retorna a seguinte msg:
proxy_mensagens is not defined _onclick()() var _onclick = function(){InfoContact.hide();proxy_mensagens.get_msg(headers_msgs.msg_number, msg_folder,true, show_msg);
Estou usando Fire Fox3
Replying to diogenesduarte:
Cara, acabei de importar duas mensagens sem problema na revisão [3220] e consegui sem erros. Será que não tem a ver com um fonte em específico? Tem como você mandar o fonte que você testou para testarmos aqui?
Replying to rafaelraymundo:
Olá eduardoalex!
Após o Commit [3220] feito em:
branches/2.2/expressoMail1_2/js/draw_api.jsOcorreu um erro de javascript ao importar mensagens. O erro ocorre no momento de selecionar uma pasta. Isso está sendo tratado?
comment:8 in reply to: ↑ 6 ; follow-up: ↓ 10 Changed 14 years ago by diogenesduarte
Nesse caso acho que a melhor opção é sempre carregar messages_proxy, já que mesmo quem não usa mensagem local precisa disso, porém acho que não é necessário local_messages, ou seria?
Quanto ao carregar sobre demanda, não vejo diferença carregar no init ou carregar no index.php, já que a demanda é ao carregar o módulo. Na verdade carregar no init dá problemas para quem usa mensagens locais, afinal o código chamando local_messages acaba as vezes sendo chamado antes de baixar o arquivo.
Sendo assim, todos concordam que a melhor opção é liberar proxy_mensagens para todos no index.php, resolvendo para quem usa e quem não usa mensagens locais?
Replying to amuller:
Por favor rever o commit 3220 pois as chamadas dos scripts não eram desnecessária. Pois é justamente o carregamento do script sob-demanda. De forma que quem não está utilizando mensagens locais não consegue ler mensagens, porque não carregou messages_controller.js.
Já quem está usando msgs_locais carrega no index.php do EM. O que também é desaconselhável porque perde o carregamento sob-demanda.
comment:9 in reply to: ↑ 7 Changed 14 years ago by diogenesduarte
Vacilei no teste, testei apenas com mensagem local habilitado, sem habilitar dá esse erro mesmo... Como comentei no post acima, é porque messages_proxy não fica habilitado, já habilitei ele para todos e funcionou sem problema nos dois casos. Acho que essa é a melhor solução realmente para esse caso.
Replying to rafaelraymundo:
O problema está ocorrendo também ao tentar abrir qualquer email. O Firebug retorna a seguinte msg:
proxy_mensagens is not defined _onclick()() var _onclick = function(){InfoContact.hide();proxy_mensagens.get_msg(headers_msgs.msg_number, msg_folder,true, show_msg);Estou usando Fire Fox3
Replying to diogenesduarte:
Cara, acabei de importar duas mensagens sem problema na revisão [3220] e consegui sem erros. Será que não tem a ver com um fonte em específico? Tem como você mandar o fonte que você testou para testarmos aqui?
Replying to rafaelraymundo:
Olá eduardoalex!
Após o Commit [3220] feito em:
branches/2.2/expressoMail1_2/js/draw_api.jsOcorreu um erro de javascript ao importar mensagens. O erro ocorre no momento de selecionar uma pasta. Isso está sendo tratado?
comment:10 in reply to: ↑ 8 Changed 14 years ago by rodsouza
- Status changed from closed to reopened
- Resolution fixed deleted
Replying to diogenesduarte:
Quanto ao carregar sobre demanda, não vejo diferença carregar no init ou carregar no index.php, já que a demanda é ao carregar o módulo. Na verdade carregar no init dá problemas para quem usa mensagens locais, afinal o código chamando local_messages acaba as vezes sendo chamado antes de baixar o arquivo.
Caregar sob demanda não é quando a página é carregada e sim quando alguma ação executada exige o script em questão.
comment:11 follow-up: ↓ 12 Changed 14 years ago by amuller
Ele não carrega no init
comment:12 in reply to: ↑ 11 ; follow-up: ↓ 14 Changed 14 years ago by diogenesduarte
O lugar que removemos foi em draw_box que é disparada de forma assíncrona a partir do init...
Concordo que alguns scripts devem ser chamados por demanda, pois alguns usuários possivelmente nem irão utilizá-los, mas alguns são necessários na montagem do módulo(funções chamadas a partir do init). Não seria melhor carregá-los em index já que sua demanda é necessária ao iniciar o expressoMail?
Replying to amuller:
Ele não carrega no init
comment:13 follow-up: ↓ 16 Changed 14 years ago by niltonneto
Simples. Se habilitar mensagens locais em minhas preferências, então carregue automático dentro de init(). Caso contrário, não há necessidade de carregá-lo.
comment:14 in reply to: ↑ 12 ; follow-up: ↓ 15 Changed 14 years ago by amuller
Nós nos preocupamos em diminuir o número de scripts carregados na inicialização do expressoMail para diminuir o tempo de abertura do mesmo. messages_controller não é necessário para montagem do módulo.
comment:15 in reply to: ↑ 14 Changed 14 years ago by diogenesduarte
Habilite mensagens locais que você verá que é necessário... tanto ele quanto local_messages...
Replying to amuller:
Nós nos preocupamos em diminuir o número de scripts carregados na inicialização do expressoMail para diminuir o tempo de abertura do mesmo. messages_controller não é necessário para montagem do módulo.
comment:16 in reply to: ↑ 13 Changed 14 years ago by diogenesduarte
O problema é que carregar em init gera erro ao usar mensagens locais.
Fiz isso no index.php ao invés do init, só que gerou problema pois o messages_proxy é necessário mesmo que não esteja habilitado mensagens locais.
Nossa sugestão é habilitar em index.php(ao invés de no init) proxy_mensagens sempre e local_messages caso habilitado mensagens locais. Isso já está funcionando em nossos testes aqui.
Replying to niltonneto:
Simples. Se habilitar mensagens locais em minhas preferências, então carregue automático dentro de init(). Caso contrário, não há necessidade de carregá-lo.
comment:17 follow-up: ↓ 18 Changed 14 years ago by niltonneto
Sugiro então, deixar SOMENTE o "proxy_mensagens" para ser carregado sempre, já que ele é quem decide se a requisição vai para pasta local ou IMAP. Já o local_messages, carregá-lo somente quando a pref estiver habilitada.
comment:18 in reply to: ↑ 17 Changed 14 years ago by diogenesduarte
A idéia é justamente essa
Replying to niltonneto:
Sugiro então, deixar SOMENTE o "proxy_mensagens" para ser carregado sempre, já que ele é quem decide se a requisição vai para pasta local ou IMAP. Já o local_messages, carregá-lo somente quando a pref estiver habilitada.
comment:19 follow-up: ↓ 20 Changed 14 years ago by amuller
Eu sugiro deixar do jeito que estava. Ou seja só desfazer o commit r3220.
comment:20 in reply to: ↑ 19 ; follow-up: ↓ 21 Changed 14 years ago by diogenesduarte
comment:21 in reply to: ↑ 20 ; follow-up: ↓ 22 Changed 14 years ago by niltonneto
Replying to diogenesduarte:
E quem habilitar mensagem local vai carregar duas vezes o arquivo? Em index.php e em loadScript no drawbox?
Replying to amuller:
Eu sugiro deixar do jeito que estava. Ou seja só desfazer o commit r3220.
Retira do loadAllScripts o "messages_controller.js" e deixa somente na index.php. Já o local_messages, carregá-lo somente quando a pref estiver habilitada.
comment:22 in reply to: ↑ 21 Changed 14 years ago by diogenesduarte
Também acho a melhor forma. Feito em [3224].
Replying to niltonneto:
Replying to diogenesduarte:
E quem habilitar mensagem local vai carregar duas vezes o arquivo? Em index.php e em loadScript no drawbox?
Replying to amuller:
Eu sugiro deixar do jeito que estava. Ou seja só desfazer o commit r3220.
Retira do loadAllScripts o "messages_controller.js" e deixa somente na index.php. Já o local_messages, carregá-lo somente quando a pref estiver habilitada.
comment:23 Changed 14 years ago by diogenesduarte
- Status changed from reopened to closed
- Resolution set to fixed