Ticket #1190 (closed defeito: fixed)

Opened 11 years ago

Last modified 10 years ago

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:1 Changed 11 years ago by diogenesduarte

  • Description modified (diff)

comment:2 Changed 11 years ago by diogenesduarte

  • Owner changed from alguem to diogenesduarte

comment:3 Changed 11 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 11 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 11 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.js

Ocorreu 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 11 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 11 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.js

Ocorreu 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 11 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 11 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.js

Ocorreu 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 11 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 11 years ago by amuller

Ele não carrega no init

comment:12 in reply to: ↑ 11 ; follow-up: ↓ 14 Changed 11 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 11 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 11 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 11 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 11 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 11 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 11 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 11 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 11 years ago by 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.

comment:21 in reply to: ↑ 20 ; follow-up: ↓ 22 Changed 11 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 11 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 10 years ago by diogenesduarte

  • Status changed from reopened to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.