wiki:phpgwapi/expressoAjax

Version 5 (modified by amuller, 14 years ago) (diff)

--

Esta página inicia as discussões sobre a camada AJAX (Javascript e XML) centralizada do Expreso. A proposta inicial (protótipo) possui os seguintes componentes:

expressoAjax.js - Script base
coder.js - Contém encode e decode de base64,md5 e url
dom.js - Contém manipuladores de objetos na tela (formulários dinâmicos e etc...)
dragdrop.js - Manipulador de soltar e arrastar
lang.js - Tratamento de internacionalização no js
xtools.js - Tratamento da parte XML

Além disso será ainda implementado:

  • Janelas
  • Efeitos em imagens
  • Abas
  • Editor de texto (ckeditor)

Como funciona

A idéia é que esta camada seja uma biblioteca ajax completa, como as outras de forma que seja possível utilizá-la em qualquer ambiente até mesmo fora do Expresso. Quando o módulo é carregado, antes da página principal começar a ser processada diversos códigos da API do Egroupware começam a ser executados. Neste ponto é incluído o script base da lib Ajax. Esta base encarrega-se de criar o objeto expresso no escopo do javascript.

Para utilizar qualquer um dos componentes (que não são carregados automaticamente) basta executar o script:

expresso.require('coder.js');

// Neste momento é carregado e instanciado o objeto coder que pode ser usado como 
var codigo = expresso.coder.base64_encode("string");

Requisições em Background

Esta implementação permite o programador fazer requisições em background

var handler_folders = function (data) { alert(data); };
cExecute ("expressoMail1_2.imap_functions.show_folders", handler_folders);

Esta requisição hipotética chamaria show_folders da classe imap_functions no módulo ExpressoMail?

expresso.connector.cacheNextRequest();
cExecute ("$this.imap_functions.show_message&uid=100", handler_message_show);

Esta requisição chama show_message do módulo corrente, e grava o resultado na memória para as próximas requisições

expresso.connector.cacheNextRequest(1);
cExecute ("$this.imap_functions.show_message&uid=100", handler_message_show);

A diferença deste exemplo é que a requisição irá expirar.

expresso.connector.purgeCache();
cExecute ("$this.imap_functions.delete_message&uid=100", handler_message_show);

Esta requisição chama delete_message do módulo corrente, e apaga os resultados gravados anteriores

Funções

borkb(size)
Retorna no formato kb,mb ou gb um tamanho em bytes
entrada integer
saída string


function url_encode(str)
Codifica uma string para ser usada em url
entrada string
saída string


function url_decode(str)
Decodifica uma string url
entrada string
saída string

function replaceAll(string, token, newtoken)

function config_events(pObj, pEvent, pHandler)

function removeAll(id)

function validateEmail(email)

function validateDomain(domain)

function validateUrl(url)

function trim(inputString)

function LTrim(value)

function add_className(obj, className)

function remove_className(obj, className)

function exist_className(obj, className)

function validate_date(date)

function get_lang(_key)

function showBar()

function hideBar()

function changeBar()

function initBar(val)

function zoom_in(id)

function zoom_out(id)