forked from extern/egroupware
- Fixed etemplate input dirty handling
- Now generating an widget object tree in widget.js - Added generic response to egw_json - Moved "getFramework" function to jsapi and renamed it to "egw_getFramework" - Added plugin system to egw_json - Transformed the jQuery "replaceWith" call form class.etemplate_form.inc.php into an own json plugin - Fixed label creation for et_html
This commit is contained in:
parent
b78a9865cc
commit
b5e33eab09
@ -306,6 +306,18 @@ class egw_json_response
|
||||
}
|
||||
}
|
||||
|
||||
public function generic($type, array $parameters = array())
|
||||
{
|
||||
if (is_string($type))
|
||||
{
|
||||
$this->addGeneric($type, $parameters);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception("Invalid parameters supplied.");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds an html assign to the response, which is excecuted upon the request is received.
|
||||
*
|
||||
|
@ -121,6 +121,50 @@ function egw_json_encode(input)
|
||||
*/
|
||||
var egw_json_files = {};
|
||||
|
||||
/**
|
||||
* Variable which stores all currently registered plugins
|
||||
*/
|
||||
var _egw_json_plugins = [];
|
||||
|
||||
/**
|
||||
* Register a plugin for the egw_json handler
|
||||
*/
|
||||
function egw_json_register_plugin(_callback, _context)
|
||||
{
|
||||
//Default the context parameter to "window"
|
||||
if (typeof _context == 'undefined') {
|
||||
_context = window;
|
||||
}
|
||||
|
||||
//Add a plugin object to the plugins array
|
||||
_egw_json_plugins[_egw_json_plugins.length] = {
|
||||
'callback': _callback,
|
||||
'context': _context
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Function used internally to pass a response to all registered plugins
|
||||
*/
|
||||
function _egw_json_plugin_handle(_type, _response) {
|
||||
for (var i = 0; i < _egw_json_plugins.length; i++)
|
||||
{
|
||||
try {
|
||||
var plugin = _egw_json_plugins[i];
|
||||
if (plugin.callback.call(plugin.context, _type, _response)) {
|
||||
return true;
|
||||
}
|
||||
} catch (e) {
|
||||
if (typeof console != 'undefined')
|
||||
{
|
||||
console.log(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/** The constructor of the egw_json_request class.
|
||||
* @param string _menuaction the menuaction function which should be called and which handles the actual request
|
||||
* @param array _parameters which should be passed to the menuaction function.
|
||||
@ -376,6 +420,9 @@ egw_json_request.prototype.handleResponse = function(data, textStatus, XMLHttpRe
|
||||
throw 'Invalid parameters';
|
||||
break;
|
||||
}
|
||||
|
||||
//Try to handle the json response with all registered plugins
|
||||
hasResponse |= _egw_json_plugin_handle(data.response[i].type, res);
|
||||
} catch(e) {
|
||||
this.jsonError('Internal JSON handler error', e);
|
||||
}
|
||||
|
@ -114,6 +114,23 @@ function egw_appWindow(_app)
|
||||
return window;
|
||||
}
|
||||
|
||||
window.egw_getFramework = function()
|
||||
{
|
||||
if (typeof window.framework != 'undefined')
|
||||
{
|
||||
return framework;
|
||||
}
|
||||
else if (typeof window.parent.egw_getFramework != "undefined")
|
||||
{
|
||||
return window.parent.egw_getFramework();
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function egw_set_checkbox_multiselect_enabled(_id, _enabled)
|
||||
{
|
||||
//Retrieve the checkbox_multiselect base div
|
||||
|
Loading…
Reference in New Issue
Block a user