LIGAÇÃO ENTRE CAMPOS E COLUNAS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ » Um campo pode: 1. Ser despachado ou não para o servidor; 2. Estar ligado ou não a uma coluna; 3. As do tipo "hidden", será referido como GCONFIG e deve ter um dos seguintes formatos: N = Campo com o número da linha N= I = Lista de campos a ignorar (não são guardados com a linha) C="[" [, ...] "]" NL = Lista de campos que não ligam ao servidor NL="[" [, ...] "]" SC = Lista de campos sem coluna; F = Indica o campo a receber o foco. A FAZER ~~~~~~~~ * Alterar o método de gravação para que cada linha alterada seja representada numa "string" interpretável por um 'eval' do PHP. Vantagens: menos código, menos DOM e mais flexibilidade na escolha do nome do campo que guarda essa informação. * Implementar suporte no GCONFIG para campos sem o prefixo; » Substituir a propriedade "isDirty" por um método com o mesmo nome. Se lhe for passada uma linha ou o número duma, indica se foi alterada. Sem argumento indica se houve alteração a qualquer linha. » 'onRowFocus' deve receber um parâmetro a indicar se é a primeira vez que se selecciona a linha. » As estruturas de suporte depois da primeira devem ser criadas por "cloneNode". » Criar o método "saveExtras" que deve guardar todos os valores da linha corrente que não tenham ligação a colunas. Se ainda não houver suporte para os dados da linha, deve criar-se um novo em que os campos não tenham nome. Isso para que não sejam despachados dados incompletos para o servidor. Os nomes devem ser repostos se a linha for guardada pelo mecanismo normal. » Também deve ser possível seleccionar uma linha em modo só-de-leitura apesar da área de edição não estar disponível. » A rodagem automática da tabela, que acontece quando o utilizador selecciona uma linha que não esteja inteiramente visível ou quando se abandona a linha nova, deve acontecer de forma suave. Ou seja, uma animação. » Deve haver o cuidado de, na eliminação da última linha, prevenir a rodagem que se deve à imediata criação da linha nova. É necessário, limpar a linha em vez de a eliminar. » Simplificar a codificação das células C1. Apenas deve ser possível definir o valor do em vez de todo o conteúdo. Campos sem coluna devem ficar aí representados ou em colunas escondidas (é preciso analisar a viabilidade desta última hipótese). » Arranjar forma de colocar os separadores verticais entre células a correr até ao fim de (neste momento termina na última linha). Á partida, há duas maneiras de fazer isto: 1. Colocar um DIV a fazer de borda; 2. Criar uma segunda tabela em cima da primeira, mostrando os separadores nesta e escondendo os da principal. » Verificar se há forma de remover um dos 3
s de topo; » Criar um esquema da estrutura do «markup» antes e após a transformação por Javascript. VERSÃO MARKUP ~~~~~~~~~~~~~ Deve ser uma tabela sem «scroll» em que todas as linhas são editáveis (um campo em cada célula). Pode fazer sentido criar uma meta-definição para as grelhas, em que a definição «rica» e «básica» são geradas automaticamente.