- not send content is not validated and therefore not passed to server-side callback (currently only implemented for text-, select- and checkbox)
- new method et2_grid.getRow(_widget) to return a fake row container to pass it etemplate2.submit() --> implemented a real row-container for et2_grid
- new output_mode=4 for etemplate_new::exec() to force a json response, like form was submitted from client-side
--> allows to use full server-side validation for ajax like calls submitting only partial content
caused by etemplate_widget_menupopup not being run, it is now run by etemplate_new::exec / etemplate_new::fix_sel_options for everything in sel_options
* Changed way of how "webserverUrl" gets set - any type of data can now be
injected into the egw object by creating an object with the data and an
entry "prefsOnly" set to true. This allows to ensure, that "webserverUrl"
is the first thing that is being set in the egw object (as needed when
including new JS/CSS files at runtime)
jsapi:
* Fixed including JS/CSS files at runtime in other windows than the root
window
* Added "ready" function/module, which provides an alternative to the
$j("ready") function. The ready module provides the functionality to
postpone calling the "ready" until certain events happened.
* using jQuery calendar object instead of jscalendar in the calendar
function.
* added "jquery" module which takes care of including all jQuery modules
in all windows
* added possibility for modules to update constants using the "constant"
function.
* added possibility for modules to access certain other modules using
the "module" function
etemplate:
* Using new egw(window).ready function to build the template first if
loading has finished.
- defines a syntax to describe how the widget is build out of existing widgets
--> reimplemented contact-widget using that aproach on serverside for old etemplate
--> sending the modifications via etemplate_widget::setElementAttribute() to the client fails, because client does not support changing the widget type
--> need to be implemented on the client
- sending evtl. necessary no_lang attribute via modifications to client
- deprecated template->(get|set|disable)_cell(_attribute) in favor of new etemplate_widget::(get|set|disable)Element(Attribute)
--> options via sel_options are currenlty not working on clientside
setting headers to allow browser to cache the file until it's etag containing the creationdates of the used langfiles changes
--> et2 can now use egw_lang object to translate labels, options, ...
- also used currently to supply options for predefined selectboxes (eg. select-cat), need to discuss if we want to fetch these per ajax
- new widget method run, which runs a given method on all widgets (and children) supporting it, eg. used now for validate
- "processing" the submit on serverside (no validation yet)
--> content returned by ajax call is not an hiearchical array: eg. "button[save]" => 1, instead of "button" => array("save" => 1)
- new call to etemplate_new::exec() is send back via new JSON generic et2_load response
--> how do we handle output of callback: a) debug output, eg. echos and b) echo "<html><head><script>window.close();</script></head></html>"; exit;