mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-23 07:09:20 +01:00
Fixed problem with generation of numerical indices in _egw_json_getFormValue, using the new global parameter of egw_json_response.redirect in json.php
This commit is contained in:
parent
f5d08b580f
commit
4b108026c6
@ -11,11 +11,10 @@
|
|||||||
|
|
||||||
/* The egw_json_request is the javaScript side implementation of class.egw_json.inc.php.*/
|
/* The egw_json_request is the javaScript side implementation of class.egw_json.inc.php.*/
|
||||||
|
|
||||||
function egw_json_encode(input)
|
function egw_json_encode_simple(input)
|
||||||
{
|
{
|
||||||
if (!input) return 'null';
|
switch (input.constructor)
|
||||||
|
{
|
||||||
switch (input.constructor) {
|
|
||||||
case String:
|
case String:
|
||||||
return '"' + input + '"';
|
return '"' + input + '"';
|
||||||
|
|
||||||
@ -25,21 +24,44 @@ function egw_json_encode(input)
|
|||||||
case Boolean:
|
case Boolean:
|
||||||
return input ? 'true' : 'false';
|
return input ? 'true' : 'false';
|
||||||
|
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function egw_json_encode(input)
|
||||||
|
{
|
||||||
|
if (!input) return 'null';
|
||||||
|
|
||||||
|
var simple_res = egw_json_encode_simple(input);
|
||||||
|
if (simple_res == null)
|
||||||
|
{
|
||||||
|
switch (input.constructor)
|
||||||
|
{
|
||||||
case Array:
|
case Array:
|
||||||
var buf = [];
|
var buf = [];
|
||||||
for (var i = 0; i < input.length; i++)
|
for (var k in input)
|
||||||
buf.push(egw_json_encode(input[i]));
|
{
|
||||||
|
buf.push(egw_json_encode(input[k]));
|
||||||
|
}
|
||||||
return '[' + buf.join(',') + ']';
|
return '[' + buf.join(',') + ']';
|
||||||
|
|
||||||
case Object:
|
case Object:
|
||||||
var buf = [];
|
var buf = [];
|
||||||
for (var k in input)
|
for (var k in input)
|
||||||
buf.push('"' + k + '":' + egw_json_encode(input[k]));
|
{
|
||||||
|
buf.push(egw_json_encode_simple(k) + ':' + egw_json_encode(input[k]));
|
||||||
|
}
|
||||||
return '{' + buf.join(',') + '}';
|
return '{' + buf.join(',') + '}';
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return 'null';
|
return 'null';
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return simple_res;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -322,6 +344,17 @@ function _egw_json_getFormValues(serialized, children)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _egw_json_getObjectLength(_obj)
|
||||||
|
{
|
||||||
|
var res = 0;
|
||||||
|
for (key in _obj)
|
||||||
|
{
|
||||||
|
if (_obj.hasOwnProperty(key))
|
||||||
|
res++;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* used internally to serialize
|
* used internally to serialize
|
||||||
*/
|
*/
|
||||||
@ -361,6 +394,7 @@ function _egw_json_getFormValue(serialized, child)
|
|||||||
var a = n.substr(n.indexOf('['));
|
var a = n.substr(n.indexOf('['));
|
||||||
if (typeof serialized[k] == 'undefined')
|
if (typeof serialized[k] == 'undefined')
|
||||||
serialized[k] = new Object;
|
serialized[k] = new Object;
|
||||||
|
|
||||||
var p = serialized; // pointer reset
|
var p = serialized; // pointer reset
|
||||||
while (a.length != 0) {
|
while (a.length != 0) {
|
||||||
var sa = a.substr(0, a.indexOf(']')+1);
|
var sa = a.substr(0, a.indexOf(']')+1);
|
||||||
@ -376,12 +410,14 @@ function _egw_json_getFormValue(serialized, child)
|
|||||||
k = lk; //restore last key
|
k = lk; //restore last key
|
||||||
p = lp;
|
p = lp;
|
||||||
} else {
|
} else {
|
||||||
k = p.length;
|
k = _egw_json_getObjectLength(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (typeof p[k] == 'undefined')
|
if (typeof p[k] == 'undefined')
|
||||||
|
{
|
||||||
p[k] = new Object;
|
p[k] = new Object;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
p[k] = values;
|
p[k] = values;
|
||||||
} else {
|
} else {
|
||||||
//Add the value to the result object with the given name
|
//Add the value to the result object with the given name
|
||||||
|
@ -44,14 +44,17 @@ else if (document.layers)
|
|||||||
*/
|
*/
|
||||||
function egw_topWindow()
|
function egw_topWindow()
|
||||||
{
|
{
|
||||||
if (window.opener)
|
if (typeof window.parent != "undefined" && typeof window.parent.top != "undefined")
|
||||||
|
{
|
||||||
|
return window.parent.top;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof window.opener != "undefined" && typeof window.opener.top != "undefined")
|
||||||
{
|
{
|
||||||
return window.opener.top;
|
return window.opener.top;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
return window.top;
|
return window.top;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user