} elseif (!OpenDB()) {\r
ErrorResponse(htmlspecialchars($oDB->LastErrorMsg));\r
} else {\r
- $fname = substr($id,5);\r
- load_mask($fname);\r
- grid_sql($fname, $mask);\r
+ if (empty($_GET['second_id'])) {\r
+ $fname = substr($id,5);\r
+ load_mask($fname);\r
+ grid_sql($fname, $mask);\r
+ }\r
\r
$filters=isset($_SESSION[$id . ".filters"]) ? $_SESSION[$id . ".filters"] : array();\r
$oDB->DisplayErrors=false;\r
$oXmlResp= new ricoXmlResponse();\r
$oXmlResp->sendDebugMsgs=true;\r
$oXmlResp->convertCharSet=false; // Database is already in UTF-8\r
+\r
+ if (isset($_GET['second_id']))\r
+ $query = str_replace('{id}', $_GET['second_id'], $_SESSION[$id]);\r
+ else\r
+ $query = $_SESSION[$id];\r
+\r
if ($distinct=="") {\r
- $oXmlResp->Query2xml($_SESSION[$id], intval($offset), intval($size), $total!="false", $filters);\r
+ $oXmlResp->Query2xml($query, intval($offset), intval($size), $total!="false", $filters);\r
} else {\r
- $oXmlResp->Query2xmlDistinct($_SESSION[$id], intval($distinct), -1, $filters);\r
+ $oXmlResp->Query2xmlDistinct($query, intval($distinct), -1, $filters);\r
}\r
if (!empty($oDB->LastErrorMsg)) {\r
echo "\n<error>";\r
return $ret;
}
-function build_grid($name, $mask)
+function build_grid($name, $mask, $gridname = false)
{
global $jscode;
$ret = array();
- $opts = array("click: gridDrillDown",
- "onscroll: gridOnScroll",
- "menuEvent: 'contextmenu'",
- "highlightElem: 'menuRow'");
+ if ($gridname == false) {
+ $jscode[] = "Rico.acceptLanguage('de-de,de;q=0.8,en;q=0.5,en-us;q=0.3');";
+ $jscode[] = "Rico.loadModule('Effect','Calendar','LiveGridForms','LiveGridAjax','LiveGridMenu');";
+ $gridname = 'grid';
+ $opts = array("click: gridDrillDown");
+ } else {
+ $name = $name . '__' . $gridname;
+ $opts = array();
+ if (array_key_exists('onclick', $mask)) $opts[] = 'click: ' . $mask['onclick'];
+ }
+
+ $opts[] = "onscroll: gridOnScroll";
+ $opts[] = "menuEvent: 'contextmenu'";
+ $opts[] = "highlightElem: 'menuRow'";
if (array_key_exists('rows', $mask)) $opts[] = 'visibleRows: ' . $mask['rows'];
if (array_key_exists('sort', $mask)) $opts[] = 'sortCol: ' . $mask['sort'];
$ret[] = ' </tr>';
$ret[] = '</table>';
- $ret[] = '<div id="grid_info"></div>';
+ $ret[] = sprintf('<div id="info_grid_%s">Datensatz 0</div>', $name);
$opts[] = 'columnSpecs: [' . implode(', ', $specs) . ']';
if (strstr($opts[count($opts)-1], 'filterUI') !== false) $opts[] = 'FilterLocation: -1';
- $jscode[] = 'var grid;';
+ $jscode[] = sprintf('var %s;', $gridname);;
$jscode[] = 'Rico.onLoad( function() {';
$jscode[] = sprintf("var %s_opts = {\n %s\n};", $name, implode(",\n ", $opts));
- $jscode[] = sprintf("grid = new Rico.LiveGrid ('grid_%s', new Rico.Buffer.AjaxSQL('ajax/ricoXMLquery.php'), %s_opts);", $name, $name);
- $jscode[] = "grid.menu = new Rico.GridMenu();";
- $jscode[] = "grid.edit = new Rico.TableEdit(grid);";
+ $jscode[] = sprintf("%s = new Rico.LiveGrid ('grid_%s', new Rico.Buffer.AjaxSQL('ajax/ricoXMLquery.php'), %s_opts);", $gridname, $name, $name);
+ $jscode[] = sprintf("%s.menu = new Rico.GridMenu();", $gridname);
+ $jscode[] = sprintf("%s.edit = new Rico.TableEdit(%s);", $gridname, $gridname);
$jscode[] = '});';
- $jscode[] = "Rico.acceptLanguage('de-de,de;q=0.8,en;q=0.5,en-us;q=0.3');";
- $jscode[] = "Rico.loadModule('Effect','Calendar','LiveGridForms','LiveGridAjax','LiveGridMenu');";
return $ret;
}
global $jscode;
$jscode[] = 'Rico.writeDebugMsg = function(msg, resetFlag) {};';
- if (array_key_exists('list', $mask))
+ if (array_key_exists('list', $mask)) {
$grid = build_grid($name, $mask);
- else
+ if (array_key_exists('second', $mask)) {
+ $mask['second']['prefetch'] = false;
+
+ $second = build_grid($name, $mask['second'], 'second');
+ if (array_key_exists('title', $mask['second']))
+ $grid[] = sprintf('<h3>%s</h3>', $mask['second']['title']);
+ $grid = array_merge($grid, $second);
+ }
+ } else
$grid = array();
$status = array('<span id="status"></span><br>');