r1724 + generateAutoPorts(): welcome new ophandler
authorDenis Ovsienko <infrastation@yandex.ru>
Mon, 25 Feb 2008 13:46:28 +0000 (13:46 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Mon, 25 Feb 2008 13:46:28 +0000 (13:46 +0000)
+ renderAutoPortsForm(): present user with a working form
+ executeAutoPorts(): return either TRUE or FALSE, so generateAutoPorts() can show appropriate message

inc/database.php
inc/interface.php
inc/navigation.php
inc/ophandlers.php

index 7de7535..4f2fba5 100644 (file)
@@ -2652,8 +2652,10 @@ function executeAutoPorts ($object_id = 0, $type_id = 0)
                showError ('Invalid arguments', __FUNCTION__);
                die;
        }
+       $ret = TRUE;
        foreach (getAutoPorts ($type_id) as $autoport)
-               commitAddPort ($object_id, $autoport['name'], $autoport['type'], '', '');
+               $ret = $ret and '' == commitAddPort ($object_id, $autoport['name'], $autoport['type'], '', '');
+       return $ret;
 }
 
 ?>
index 6940d29..74fb943 100644 (file)
@@ -4473,9 +4473,30 @@ function renderLivePTR ($id = 0)
        echo "</td></tr></table>\n";
 }
 
-function renderAutoPortsForm ()
+function renderAutoPortsForm ($object_id = 0)
 {
-       dragon();
+       global $root, $pageno, $tabno;
+       if ($object_id <= 0)
+       {
+               showError ('Invalid object_id', __FUNCTION__);
+               return;
+       }
+       $info = getObjectInfo ($object_id);
+       $ptlist = readChapter ('PortType');
+       echo "<table class='widetable' border=0 cellspacing=0 cellpadding=5 align='center'>\n";
+       echo "<caption>The following ports can be quickly added:</caption>";
+       echo "<tr><th>type</th><th>name</th></tr>";
+       foreach (getAutoPorts ($info['objtype_id']) as $autoport)
+               echo "<tr><td>" . $ptlist[$autoport['type']] . "</td><td>${autoport['name']}</td></tr>";
+       echo "<form method=post action='${root}process.php'>\n";
+       echo "<input type=hidden name=page value=${pageno}>\n";
+       echo "<input type=hidden name=tab value=${tabno}>\n";
+       echo "<input type=hidden name=object_id value=${object_id}>\n";
+       echo "<input type=hidden name=op value=generate>\n";
+       echo "<tr><td colspan=2 align=center>";
+       echo "<input type=submit value='Generate'>";
+       echo "</td></tr>";
+       echo "</table>";
 }
 
 ?>
index e586a0d..72e555c 100644 (file)
@@ -109,6 +109,7 @@ $ophandler['object']['edit']['upd'] = 'updateAttrValues';
 $ophandler['object']['portfwrd']['forwardPorts'] = 'addPortForwarding';
 $ophandler['object']['portfwrd']['delPortForwarding'] = 'delPortForwarding';
 $ophandler['object']['portfwrd']['updPortForwarding'] = 'updPortForwarding';
+$ophandler['object']['autoports']['generate'] = 'generateAutoPorts';
 
 $page['ipv4space']['title'] = 'IPv4 space';
 $page['ipv4space']['parent'] = 'index';
index 4bd85a3..da09894 100644 (file)
@@ -1215,4 +1215,17 @@ function importPTRData ()
                return "${root}?page=${pageno}&tab=${tabno}&id=${id}&error=" . urlencode ("Encountered ${nbad} errors, updated ${ngood} IP address(es)");
 }
 
+function generateAutoPorts ()
+{
+       global $root, $pageno, $tabno;
+       assertUIntArg ('object_id');
+       $object_id = $_REQUEST['object_id'];
+       $info = getObjectInfo ($object_id);
+       // Navigate away in case of success, stay at the place otherwise.
+       if (executeAutoPorts ($object_id, $info['objtype_id']))
+               return "${root}?page=${pageno}&tab=ports&object_id=${object_id}&message=" . urlencode ('Generation complete');
+       else
+               return "${root}?page=${pageno}&tab=${tabno}&object_id=${object_id}&error=" . urlencode ('executeAutoPorts() failed');
+}
+
 ?>