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 "| " . $rowhelper['fielddescr'] . " | \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";
- 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 " | \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 "| ";
+ echo "";
+ 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 "";
- echo "";
- echo " | \n";
- echo "\n";
}
?>
@@ -373,3 +397,39 @@ $config = $config_tmp;
|