Essa eu mereço o trofeu

November 29th, 2007  | Tags:

Estamos implantando um administrativo de grade de programação aqui no escritório. O tempo é curto.
A ideia é ter um “template de grade” armazenado em banco, assim gravamos uma semana de grade vazia (com os programas em seus horários pré-determinados).
Na hora de escolher, montamos a grade na tela, o usuário clica no dia/horário do programa, e escolhe qual episódio vai passar nesse horário.
Soa simples né?
Em um framework java todo zoado, com um prazo relativamente curto, acabamos tendo que improvisar.
Toda parte de cadastro até chegar aos episódios, já está OK, mas faltava fazer a grade e o admin de templates. Algo que não dá tempo hábil pra fazer.
Como resolver isso? POG, POG, POG e mais POG.

O processo da POG Master.

1 - pegamos a grade em excel. Exportamos pra HTML.
2 - Limpamos um pouco a grade com RegEx no textEdit
3 - fazemos todo controle da grade via Javascript.

Explicando um pouco o passo 2:
- arrancamos algumas declarações de font e style da Microsoft.
- incluimos um onclick=’processa(this)’ nos TDs da matriz, exceto nos horários e datas.

Explicando um pouco o passo 3:
O JAVA cospe na tela:
- um array com ID e nome do programa
- um array com os programas atualemente ja preenchidos (’episodio’, ‘data hora’);

1 - O javascript lê, via DOM, todas as celulas que tem um onClick, ele adiciona um onmouseover e onmouseout para permitir impressão de click e colocar um highlight.
2 - a função processa, pega o conteúdo do TD, recursivo porque tem alguns tds com FONT e B e what not, procurando cada node de texto com a lista de programas. Pega a data da coluna onde ele tá e o horário da linha em que ele se encontra (buscando os valores contidos nas células de data - linha 1 na coluna X, e hora - linha X na coluna 1). Abre um popup, passando estes dados, que permitem ao usuário escolher um programa.

POP - O usuário escolhe o episódio do programa escolhido. Quando clica OK, o JAVA insere em banco e retorna um script que roda uma função no opener.

3 - a função no opener, pega o TD selecionado, adiciona um DIV nele, com o nome do episódio.

4 - Arrumando a casa - antes da pagina ficar interativa, o JS arruma os horários (que tem um atraso de 15 minutos na grade, usa a lista de episódios já registrados para popular a grade atual).

Assim, criamos um mecanismo de display de grade, quase que inteiramente clientSide.

um dia eu publico isso em algum lugar para vocês passarem mal.

Share/Save

  1. November 30th, 2007 at 04:42
    #1

    Nossa, dessa vez vc se superou!

  2. Paula Mariano
    December 2nd, 2007 at 19:39
    #2

    HAHA!

    deixa eu ver se adivinho, jquery?

  3. December 19th, 2007 at 15:46
    #3

    Bugz is the King!

  4. Fábio Chilá
    January 20th, 2008 at 02:33
    #4

    Cara, nessas horas que sinto saudades de você…
    brown tu é realmente foda! ehhe :)

    abraço!

TOP