From: arjen Date: Wed, 5 Feb 2003 09:47:39 +0000 (+0000) Subject: Display the difference of all package class parameters for two objects X-Git-Tag: V0_0_4~7 X-Git-Url: http://www.andromeda.nl/gitweb/?p=gnucomo.git;a=commitdiff_plain;h=640075610fa3da067cc2cbdcfa4f1ee9ca0b0ab6 Display the difference of all package class parameters for two objects --- diff --git a/src/web/parameter.php b/src/web/parameter.php index f7d4c02..f02148f 100644 --- a/src/web/parameter.php +++ b/src/web/parameter.php @@ -1,16 +1,39 @@ Parameters for " . $obj->objectname . ""; $res = pg_exec("SELECT paramid, class, name, description FROM parameter " - ."WHERE objectid=" . $_GET['oid']); + ."WHERE objectid=" . $_GET['oid'] . "order by class, name"); ?>
'> Compare to object: - +
-GNUCoMo login +Parameter comparison + - +/* Display a parameter in two adjecent table cells */ + +function display_parameter($name, $properties, $css_class = "") +{ + echo ""; + echo $name; + echo ""; + foreach ($properties as $p_name => $p_value) + { + echo " $p_name=$p_value"; + } + echo ""; +} - - -Database($_SESSION['username'], $_SESSION['password'])); - if (!empty($_GET['oid'])) + if (!empty($_POST['oid'])) { - $res = pg_exec("SELECT objectname FROM object WHERE objectid=" . $_GET['oid']); + $res = pg_exec("SELECT objectid, objectname FROM object WHERE objectid=" . $_POST['oid']); $obj = pg_fetch_object($res, 0); - echo "

Parameters for " . $obj->objectname . "


"; + echo "

" . $_POST['class'] . " parameters for " . $obj->objectname; + $res = pg_exec("SELECT objectid, objectname FROM object WHERE objectid=" . $_POST['compare_to']); + $cmp_obj = pg_fetch_object($res, 0); + echo " compared to " . $cmp_obj->objectname . "


"; - $res = pg_exec("SELECT paramid, class, name, description FROM parameter " - ."WHERE objectid=" . $_GET['oid']); + $res = pg_exec("SELECT objectid, paramid, name FROM parameter " + . "WHERE objectid=" . $obj->objectid . " OR objectid=" . $cmp_obj->objectid + . " AND class='" . $_POST['class'] . "' ORDER BY name, objectid"); ?> -
-
"; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; $row = 0; while ($row < pg_numrows($res)) { $par = pg_fetch_object($res, $row); - ?> - "; + + if ($nextpar && $par->name == $nextpar->name) + { + /* Both objects have this parameter */ + $row++; + + $pr = param_properties($conn, $par->paramid); + $prnext = param_properties($conn, $nextpar->paramid); + if (property_compare($pr, $prnext)) + { + display_parameter($par->name, $pr); + display_parameter($nextpar->name, $prnext); + } + else + { + // We want the parameters of $obj on the left, so we need + // to swap the left and right sides if appropriate. + + if ($par->objectid == $obj->objectid) + { + display_parameter($par->name, $pr, "both"); + display_parameter($nextpar->name, $prnext, "both"); + } + else { - $prop = pg_fetch_object($r, $p); - echo $prop->name . "=" . $prop->value . " "; + display_parameter($nextpar->name, $prnext, "both"); + display_parameter($par->name, $pr, "both"); } - ?> - - paramid); + + if ($par->objectid == $obj->objectid) + { + /* Parameter belongs to the object on the left */ + + display_parameter($par->name, $pr, "left"); + echo ""; + display_parameter($par->name, $pr, "right"); + } + } + echo "\n"; $row++; } - echo "
" . $obj->objectname . "" . $cmp_obj->objectname . "
NamePropertiesNamePropterties
- class?> - - name?> - - description?> - - paramid . "'"); - for ($p = 0; $p < pg_numrows($r); $p++) + $nextpar = 'false'; + if ($row + 1 < pg_numrows($res)) + { + $nextpar = pg_fetch_object($res, $row + 1); + } + echo "
  "; + } + else + { + /* Parameter belongs to the object on the right */ + + echo ""; + echo "  
"; + echo "\n"; } } ?>