Ticket #548 (closed melhoria: worksforme)

Opened 12 years ago

Last modified 12 years ago

Implementação do Expresso (Mail) Offline

Reported by: amuller Owned by: everybody
Priority: média Milestone: Expresso 2.0
Component: ExpressoMail Version: trunk
Severity: Keywords: offline local aplicação
Cc: WorkGroup:

Description

Abri este ticket com intuito de abrir discussão e idéia sobre o Expresso offline.

Além dos trabalhos desenvolvidos por Prodeb e Serpro de arquivamento local com GoogleGears?, deixo aqui anexado um exemplo não acabado de "expressoMail Offline". Explicando brevemente o que é este anexo e para que serve:

Este arquivo tar contém uma pasta com códigos do expressoMail. Com ele o usuário pode utilizar parte do expressoMail sem ter conexão alguma com internet. Ou seja, o usuário não precisa de uma URL para se logar no expresso, ele também não precisa ter nenhum serviço instalado na sua máquina como apache. Ele apenas acessa o  file://index.html e já estará utilizando o expresso exatamente como num cliente (outlook).

A implementação do arquivamento local não estava pronta na montagem deste portanto não é acessível, mas é lógico que o principal benefício seria justamente o acesso ao arquivamento local.

A diferença de outros serviços offline como arquivamento do Gmail seria a dispensa de conexão com internet. A idéia é que o código online do expresso fosse adaptado para que quando o usuário desejar, um plugin exporte todo o código offline para sua máquina. Então o usuário teria opção de instalar o expresso na sua máquina, para utilizar sem internet e assim ler arquivamentos locais.

Attachments

offline.jpg Download (83.5 KB) - added by amuller 12 years ago.

Change History

comment:1 follow-up: ↓ 2 Changed 12 years ago by diogenesduarte

Então... Há pouco menos de um mês finalizamos a primeira versão do então ExpressoMail? Offline e o mesmo já se encontra em ambiente de produção aqui na Bahia. Como discutido um pouco na lista de e-mails na época que iniciamos o desenvolvimento, o código referente a essa funcionalidade está no próprio módulo de e-mails e contempla unicamente a função de arquivamento local, afinal, estando offline essa seria a única opção do possível para o usuário. Vou tentar explicar como funciona atualmente a nível de usuário:

  • Em minhas preferências, o usuário pode dizer se quer instalar o ExpressoMail? Offline. Caso deseje, ele irá escolher uma senha para acessá-lo.
  • Após instalar, aparece um ícone na área de trabalho para acesso ao ExpressoMail? Offline.
  • Ao acessar, ele irá selecionar um dos usuários que instalou o ExpressoMail? Offline naquela estação e fornecer a senha do mesmo(Senha do offline).
  • Após o login, ele terá a mesma tela do ExpressoMail? online, contendo apenas as pastas e e-mails do arquivamento local. Ele poderá manipular pastas, responder e/ou encaminhar e-mails, enviar e-mails, efetuar buscas, etc., tudo em cima das mensagens arquivadas.
  • Caso ele envie e-mails a partir do ExpressoMail? Offline, os mesmos irão para uma lista que será enviada quando o usuário acessar o ExpressoMail? Online. Além de ser perguntado se deseja enviar a lista ao acessar o módulo online, existe uma opção para enviar a fila à qualquer momento.

Quanto à implementação, apesar dos códigos terem sido implementados no próprio módulo do expressoMail, não houve modificação considerável nos métodos e funções antigos. A maioria da implementação foi feita em funções e métodos novos, além da criação de novos templates e objetos javascript.

comment:2 in reply to: ↑ 1 Changed 12 years ago by amuller

Replying to diogenesduarte:

Então... Há pouco menos de um mês finalizamos a primeira versão do então ExpressoMail? Offline e o mesmo já se encontra em ambiente de produção aqui na Bahia. Como discutido um pouco na lista de e-mails na época que iniciamos o desenvolvimento, o código referente a essa funcionalidade está no próprio módulo de e-mails e contempla unicamente a função de arquivamento local, afinal, estando offline essa seria a única opção do possível para o usuário. Vou tentar explicar como funciona atualmente a nível de usuário:


- Em minhas preferências, o usuário pode dizer se quer instalar o ExpressoMail? Offline. Caso deseje, ele irá escolher uma senha para acessá-lo.
- Após instalar, aparece um ícone na área de trabalho para acesso ao ExpressoMail? Offline.
- Ao acessar, ele irá selecionar um dos usuários que instalou o ExpressoMail? Offline naquela estação e fornecer a senha do mesmo(Senha do offline).
- Após o login, ele terá a mesma tela do ExpressoMail? online, contendo apenas as pastas e e-mails do arquivamento local. Ele poderá manipular pastas, responder e/ou encaminhar e-mails, enviar e-mails, efetuar buscas, etc., tudo em cima das mensagens arquivadas.
- Caso ele envie e-mails a partir do ExpressoMail? Offline, os mesmos irão para uma lista que será enviada quando o usuário acessar o ExpressoMail? Online. Além de ser perguntado se deseja enviar a lista ao acessar o módulo online, existe uma opção para enviar a fila à qualquer momento.
Quanto à implementação, apesar dos códigos terem sido implementados no próprio módulo do expressoMail, não houve modificação considerável nos métodos e funções antigos. A maioria da implementação foi feita em funções e métodos novos, além da criação de novos templates e objetos javascript.

Legal! isso é bom mesmo e quando vamos poder testar isso?

comment:3 follow-up: ↓ 4 Changed 12 years ago by diogenesduarte

Depende de como está o trunk. Como foram feitas muitas modificações desde que comitamos o Arquivamento Local, talvez demore um pouco para fazermos o merge. Creio que no pior das hipóteses demoraríamos 2 ou 3 dias para disponibilizar isso. Basta ver então quando poderemos começar a mergear nosso código com o trunk, visto que uma intervenção nossa pode atrapalhar um pouco os comits que o serpro vem fazendo. Acredito que uma boa opção seria esperarmos o serpro comitar pelo menos o "grosso" para então podermos começar os trabalhos para adicionar essa funcionalidade.

comment:4 in reply to: ↑ 3 Changed 12 years ago by brunocosta

Replying to diogenesduarte:

Depende de como está o trunk. Como foram feitas muitas modificações desde que comitamos o Arquivamento Local, talvez demore um pouco para fazermos o merge. Creio que no pior das hipóteses demoraríamos 2 ou 3 dias para disponibilizar isso. Basta ver então quando poderemos começar a mergear nosso código com o trunk, visto que uma intervenção nossa pode atrapalhar um pouco os comits que o serpro vem fazendo. Acredito que uma boa opção seria esperarmos o serpro comitar pelo menos o "grosso" para então podermos começar os trabalhos para adicionar essa funcionalidade.

Eu submeti na revisão 1000 as modificações aqui do SERPRO sobre o arquivamento local, o ticket é o #550 se você quiser dar uma olhada.

comment:5 follow-up: ↓ 6 Changed 12 years ago by diogenesduarte

Então se nós adicionarmos e comitarmos a funcionalidade expresso offline não irá atrapalhar os comits que vocês estão para fazer?

comment:6 in reply to: ↑ 5 ; follow-up: ↓ 7 Changed 12 years ago by brunocosta

Replying to diogenesduarte:

Então se nós adicionarmos e comitarmos a funcionalidade expresso offline não irá atrapalhar os comits que vocês estão para fazer?

Eu posso até comitar alguma coisa agora para corrigir algum problema, mas o comite das funcionalidades já foi. Vai em frente e comita o offline!

comment:7 in reply to: ↑ 6 Changed 12 years ago by niltonneto

Replying to brunocosta:

Replying to diogenesduarte:

Então se nós adicionarmos e comitarmos a funcionalidade expresso offline não irá atrapalhar os comits que vocês estão para fazer?

Eu posso até comitar alguma coisa agora para corrigir algum problema, mas o comite das funcionalidades já foi. Vai em frente e comita o offline!

Sempre gosto de reforçar o lembrete: Lembre-se de deixar totalmente configurável esse tipo de implementação, para que não impacte no funcionamento normal da aplicação. Boa Sorte.

comment:8 Changed 12 years ago by diogenesduarte

  • Status changed from new to closed
  • Resolution set to worksforme

Comitado na revisão 1121

Algumas considerações importantes:

  • As modificações causadas pela incorporação do expresso offline são decorrentes basicamente de componentes novos, porém alguns dos antigos foram modificados para mudar o comportamento de acordo com o modo do expresso que está utilizando o mesmo(modo online X modo offline). Desses componentes, os que tiveram maior modificação foram os arquivos commons_functions, draw_api e main.js..
  • Para o offline funcionar, o Gears baixa todos os componentes javascript do expresso para a máquina do cliente, bem como imagens e etc. Aqui na PRODEB, nós usamos esses mesmos componentes baixados na requisição do expresso online, assim, ao acessar o módulo de e-mail o usuário não baixa nenhum componente do expresso, tornando o acesso ao módulo mais rápido e com menos tráfego de rede. Existem benefícios e malefícios nessa solução, por isso não implementamos as modificações dessa forma na comunidade pois acreditamos que isso teria que ser melhor discutido, mas se for decidido dessa forma, podemos fazer essa modificação durante a homologação da versão do expresso.
  • A senha do offline não é a mesma do online, e nem há qualquer tipo de sincronismo.
  • As preferências do usuário no offline são as mesmas do momento da instalação no online. Ao instalar o off, são salvas no offline a maioria das preferências do usuário, algumas poucas são valores fixos para todos.
  • As modificações feitas no código da aplicação offline serão atualizadas automaticamente na máquina dos clientes, quando o mesmo tiver navegando no expresso online, ou ainda quando estiver no offline mas conectado. Para que isso ocorra, para toda modificação feita deverá ser modificado o arquivo manifest existente na pasta js de acordo com as instruções na documentação do google gears. Caso decidido que o usuário utilizará no online os mesmos componentes baixados pelo offline, essa mudança será automática. O gears baixa os novos componentes e eles já funcionam.

comment:9 Changed 12 years ago by niltonneto

Como eu faço para desabilitar o link "Expresso offline", caso não queira disponibilizar esse recurso no meu servidor Expresso?

comment:10 follow-up: ↓ 13 Changed 12 years ago by diogenesduarte

tira no hook...

comment:11 follow-up: ↓ 14 Changed 12 years ago by amuller

Tem um probleminha que eu vi, o CSS está apontando pro servidor online. Quando você acessa via offline ele fica tudo desconfigurado.

comment:12 Changed 12 years ago by amuller

Mas no mais ta muito bom, parabéns

comment:13 in reply to: ↑ 10 ; follow-up: ↓ 23 Changed 12 years ago by niltonneto

Replying to diogenesduarte:

tira no hook...

Realmente ficou muito bom! Parabéns.
Mas agora é preciso ajustar o código para os padrões existentes no projeto, e com urgência. Antes de tudo, é essencial tornar configurável essa nova funcionalidade. Favor inserir em "Configurações do Servidor" do módulo ExpressoMail?.

comment:14 in reply to: ↑ 11 ; follow-up: ↓ 15 Changed 12 years ago by diogenesduarte

Replying to amuller:

Tem um probleminha que eu vi, o CSS está apontando pro servidor online. Quando você acessa via offline ele fica tudo desconfigurado.

Estranho, aqui não teve isso, testei em algumas máquinas... devo ter esquecido de comitar algo... me passa o caminho do arquivo que ele está indo buscar online para eu tentar entender o que aconteceu?

comment:15 in reply to: ↑ 14 ; follow-up: ↓ 16 Changed 12 years ago by amuller

Replying to diogenesduarte:

Replying to amuller:

Tem um probleminha que eu vi, o CSS está apontando pro servidor online. Quando você acessa via offline ele fica tudo desconfigurado.

Estranho, aqui não teve isso, testei em algumas máquinas... devo ter esquecido de comitar algo... me passa o caminho do arquivo que ele está indo buscar online para eu tentar entender o que aconteceu?

O meu teste foi o seguinte. Instalei o Expresso Offline, daí fiz sudo ifconfig eth0 down (para desligar a interface de rede). Daí limpei o cache do navegador, quando entrei tava tudo esquisitão. Quando eu abri o firebug na aba de CSS tava apontando pro meu servidor online (como na figura). Isso deve ser fácil de corrigir é só baixar o CSS pra máquina.

Changed 12 years ago by amuller

comment:16 in reply to: ↑ 15 Changed 12 years ago by diogenesduarte

Replying to amuller:

Replying to diogenesduarte:

Replying to amuller:

Tem um probleminha que eu vi, o CSS está apontando pro servidor online. Quando você acessa via offline ele fica tudo desconfigurado.

Estranho, aqui não teve isso, testei em algumas máquinas... devo ter esquecido de comitar algo... me passa o caminho do arquivo que ele está indo buscar online para eu tentar entender o que aconteceu?

O meu teste foi o seguinte. Instalei o Expresso Offline, daí fiz sudo ifconfig eth0 down (para desligar a interface de rede). Daí limpei o cache do navegador, quando entrei tava tudo esquisitão. Quando eu abri o firebug na aba de CSS tava apontando pro meu servidor online (como na figura). Isso deve ser fácil de corrigir é só baixar o CSS pra máquina.

Que mistério... Esses arquivos que estão faltando não deveriam nem ao menos serem chamados... o offline deveria pegar apenas os css do template azul. Eu mudei o template no online e fiz o teste que você citou para ver se o template online influenciava em algo. Notei que a troca de temas está gerando problemas, mas apenas no modo online. Os outros templates ficaram completamente bagunçado, só ficou certinho com o template azul, porém o offline sempre chamava o template azul. Alguém mais que testou encontrou esse problema?

Vou continuar investigando por aqui...

comment:17 follow-up: ↓ 18 Changed 12 years ago by amuller

Eu tava usando o default (nosso antigo template).

comment:18 in reply to: ↑ 17 Changed 12 years ago by diogenesduarte

Replying to amuller:

Eu tava usando o default (nosso antigo template).

Ok, esqueça o que eu falei antes... Vou ganhar o prêmio BO desse ano, estava fazendo modificações em um servidor e testando em outro...

O problema é esse mesmo, o template. Quando você instala com o offline com template antigo, ele pega os css do template antigo e coloca no código para chamar, e aí esses arquivos não estão no manifest. Vou colocar todos os css de todos os templates no manifest, irá resolver isso.

Como devo proceder nesse caso? crio um ticket para correção desse problema ou posso comitar me referenciando à esse ticket?

comment:19 Changed 12 years ago by amuller

Acho que pode ser aqui mesmo, já que discutimos aqui.

comment:20 Changed 12 years ago by niltonneto

  • Milestone set to Expresso 2.0

Veja em  MetodologiaUsoTracSubversion, na parte "Reabertura de Tickets". Lá define que o ticket deve ser usado até o final da publicação da versão, descrevendo correções e melhorias (revisões). Após isso sim, deve ser aberto um novo ticket.

comment:21 follow-up: ↓ 22 Changed 12 years ago by diogenesduarte

não pensei como reabertura, é que como já estavamos para criar um branch da versão 2.0, isso poderia ser encarado como correção, e para tal criado outro ticket, mas de qualquer forma, tá comitado na revisão 1127.

comment:22 in reply to: ↑ 21 Changed 12 years ago by niltonneto

Replying to diogenesduarte:

não pensei como reabertura, é que como já estavamos para criar um branch da versão 2.0, isso poderia ser encarado como correção, e para tal criado outro ticket, mas de qualquer forma, tá comitado na revisão 1127.

Diogenes, favor verificar ticket #579, que conforme descrição, apareceu após a revisão [1121].

comment:23 in reply to: ↑ 13 ; follow-up: ↓ 24 Changed 12 years ago by diogenesduarte

Replying to niltonneto:

Replying to diogenesduarte:

tira no hook...

Realmente ficou muito bom! Parabéns.
Mas agora é preciso ajustar o código para os padrões existentes no projeto, e com urgência. Antes de tudo, é essencial tornar configurável essa nova funcionalidade. Favor inserir em "Configurações do Servidor" do módulo ExpressoMail?.

Comit na revisão [1231] já contempla o expresso offline como funcionalidade configurável, a partir do módulo Admin.

comment:24 in reply to: ↑ 23 Changed 12 years ago by niltonneto

Replying to diogenesduarte:

Replying to niltonneto:

Replying to diogenesduarte:

tira no hook...

Realmente ficou muito bom! Parabéns.
Mas agora é preciso ajustar o código para os padrões existentes no projeto, e com urgência. Antes de tudo, é essencial tornar configurável essa nova funcionalidade. Favor inserir em "Configurações do Servidor" do módulo ExpressoMail?.

Comit na revisão [1231] já contempla o expresso offline como funcionalidade configurável, a partir do módulo Admin.

Ficou ótimo assim! Já testei aqui.

comment:25 Changed 12 years ago by niltonneto

Erro no apache: [client 127.0.0.1] File does not exist: /var/www/expresso/expressoMail1_2/js/preferences.js, referer:  http://localhost/expresso/expressoMail1_2/index.php
Favor verificar urgente! Retirei a chamada "preferences.js" do arquivo manifest e o erro continua aparecendo no log. Esse JS não é mais usado e por isso foi removido.

Note: See TracTickets for help on using tickets.