diff --git a/usr/local/www/pkg_edit.php b/usr/local/www/pkg_edit.php index 0cef8f8405..7f970c0dbe 100755 --- a/usr/local/www/pkg_edit.php +++ b/usr/local/www/pkg_edit.php @@ -59,6 +59,10 @@ $id = $_GET['id']; if (isset($_POST['id'])) $id = $_POST['id']; +// grab the installedpackages->package_name section. +$toeval = "\$a_pkg = &\$config['installedpackages']['" . $package_name . "']['config'];"; +eval($toeval); + $toeval = "if (!is_array(\$config['installedpackages']['" . xml_safe_fieldname($pkg['name']) . "']['config'])) \$config['installedpackages']['" . xml_safe_fieldname($pkg['name']) . "']['config'] = array();"; eval($toeval); @@ -204,14 +208,22 @@ $config = $config_tmp; "; - echo $pkga['fielddescr']; - echo ""; + echo ""; + echo $pkga['fielddescr']; + echo ""; } if(!$pkga['dontcombinecells']) echo ""; + // if user is editing a record, load in the data. + if (isset($id) && $a_pkg[$id]) { + $fieldname = $pkga['fieldname']; + $toeval = "\$value = \$a_pkg[" . $id . "]['" . $fieldname . "'];"; + echo "\n"; + eval($toeval); + } + if($pkga['type'] == "input") { if($pkga['size']) $size = " size='" . $pkga['size'] . "' "; echo "\n"; @@ -221,11 +233,13 @@ $config = $config_tmp; echo "
" . $pkga['description'] . "\n"; } else if($pkga['type'] == "select") { // XXX: TODO: set $selected + $selected = ""; if($pkga['size']) $size = " size='" . $pkga['size'] . "' "; if($pkga['multiple'] == "yes") $multiple = "MULTIPLE "; echo "\n"; echo "
" . $pkga['description'] . "\n"; @@ -279,9 +293,9 @@ $config = $config_tmp; " . $rowhelper['fielddescr'] . "\n"; - } + foreach($pkga['rowhelper']['rowhelperfield'] as $rowhelper) { + echo "\n"; + } echo ""; echo ""; @@ -289,44 +303,54 @@ $config = $config_tmp; // XXX: traverse saved fields, add back needed rows. echo ""; - if($rowcounter == 0) { - // nothing saved. manually add the first row. - echo "\n"; - $rowcounter = 0; - $trc = 0; - foreach($pkga['rowhelper']['rowhelperfield'] as $rowhelper) { - $temp = ""; - $text = ""; - $value = ""; - if($rowhelper['value'] <> "") $value = $rowhelper['value']; - echo "\n"; + $rowcounter = 0; + $trc = 0; + if(isset($a_pkg[$id]['row'])) { + foreach($a_pkg[$id]['row'] as $row) { + /* + * loop through saved data for record if it exists, populating rowhelper + */ + foreach($pkga['rowhelper']['rowhelperfield'] as $rowhelper) { + if($rowhelper['value'] <> "") $value = $rowhelper['value']; + $fieldname = $rowhelper['fieldname']; + // if user is editing a record, load in the data. + if (isset($id) && $a_pkg[$id]) { + $toeval = "\$value = \$row['" . $fieldname . "'];"; + echo "\n"; + eval($toeval); + echo "\n"; + } + $options = ""; + $type = $rowhelper['type']; + $fieldname = $rowhelper['fieldname']; + if($type == "option") $options = &$rowhelper['options']['option']; + display_row($trc, $value, $fieldname, $type, $rowhelper); } - echo "\n"; - echo "\n"; $trc++; + $rowcounter++; + echo "\n"; + echo "\n"; + } + } + if($trc == 0) { + /* + * no records loaded. + * just show a generic line non-populated with saved data + */ + foreach($pkga['rowhelper']['rowhelperfield'] as $rowhelper) { + if($rowhelper['value'] <> "") $value = $rowhelper['value']; + $fieldname = $rowhelper['fieldname']; + $options = ""; + $type = $rowhelper['type']; + $fieldname = $rowhelper['fieldname']; + if($type == "option") $options = &$rowhelper['options']['option']; + display_row($trc, $value, $fieldname, $type, $rowhelper); + $trc++; + $rowcounter++; } - $rowcounter=0; - echo "\n"; - echo "\n"; } ?> @@ -373,3 +397,39 @@ $config = $config_tmp; + +\n"; + if($type == "input") { + echo "\n"; + } else if($type == "password") { + echo "\n"; + } else if($type == "textarea") { + echo "\n"; + } else if($type == "select") { + echo "\n"; + } + // javascript helpers for row_helper_dynamic.js + echo "\n"; + echo "\n"; +} + +?> \ No newline at end of file
" . $rowhelper['fielddescr'] . "
\n"; - if($rowhelper['type'] == "input") { - echo "\n"; - } else if($rowhelper['type'] == "password") { - echo "\n"; - } else if($rowhelper['type'] == "textarea") { - echo "\n"; - } else if($rowhelper['type'] == "select") { - echo "\n"; + echo "
"; + echo ""; + echo "
"; - echo ""; - echo "