r2287 allow port type to be changed if it isn't linked. closes ticket 137
authorAaron Dummer <aaron@dummer.info>
Wed, 12 Nov 2008 15:45:35 +0000 (15:45 +0000)
committerAaron Dummer <aaron@dummer.info>
Wed, 12 Nov 2008 15:45:35 +0000 (15:45 +0000)
ChangeLog
inc/database.php
inc/interface.php
inc/ophandlers.php

index ae95bbb..0a174e3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,10 @@
 0.17.0
        new feature: file attachments (by Aaron)
        update: display row name when listing objects. closes ticket 16 (by Aaron)
-       update: ability to manage rows from the Rackspace page in addition to the Dictionary
-       bugfix: show error message if snmp module isn't loaded.  closes ticket 43 (by Aaron)
+       update: ability to manage rows from the Rackspace page in addition to the Dictionary (by Aaron)
        update: IPv4 calculations were optimized for better speed
+    update: allow port type to be changed if it isn't linked.  closes ticket 137 (by Aaron)
+       bugfix: show error message if snmp module isn't loaded.  closes ticket 43 (by Aaron)
 0.16.4 2008-11-04
        bugfix: display VS/RS config block in RS pool view
        bugfix: resolve tabindex issues in many forms
index eea5086..67b1b05 100644 (file)
@@ -800,12 +800,12 @@ function commitAddPort ($object_id = 0, $port_name, $port_type_id, $port_label,
 // The fifth argument may be either explicit 'NULL' or some (already quoted by the upper layer)
 // string value. In case it is omitted, we just assign it its current value.
 // It would be nice to simplify this semantics later.
-function commitUpdatePort ($port_id, $port_name, $port_label, $port_l2address, $port_reservation_comment = 'reservation_comment')
+function commitUpdatePort ($port_id, $port_name, $port_type_id, $port_label, $port_l2address, $port_reservation_comment = 'reservation_comment')
 {
        global $dbxlink;
        $port_l2address = l2addressForDatabase ($port_l2address);
        $query =
-               "update Port set name='$port_name', label='$port_label', " .
+               "update Port set name='$port_name', type=$port_type_id, label='$port_label', " .
                "reservation_comment = ${port_reservation_comment}, l2address=${port_l2address} " .
                "where id='$port_id'";
        $result = $dbxlink->exec ($query);
index 374b79f..38f1d21 100644 (file)
@@ -1112,7 +1112,17 @@ function renderPortsForObject ($object_id = 0)
                echo "</a></td>\n";
                echo "<td><input type=text name=name value='${port['name']}' size=8></td>";
                echo "<td><input type=text name=label value='${port['label']}' size=24></td>";
-               echo "<td>${port['type']}</td>\n";
+               if (!$port['remote_object_id'])
+               {
+                       echo "<td>";
+                       printSelect (getPortTypes(), 'port_type_id', $port['type_id']);
+                       echo "</td>";
+               }
+               else
+               {
+                       echo "<input type=hidden name=port_type_id value='${port['type_id']}'>";
+                       echo "<td>${port['type']}</td>\n";
+               }
                echo "<td><input type=text name=l2address value='${port['l2address']}'></td>\n";
                if ($port['remote_object_id'])
                {
index 633cc45..f58eeb8 100644 (file)
@@ -176,6 +176,7 @@ function addPortForObject ()
 function editPortForObject ()
 {
        assertUIntArg ('port_id', __FUNCTION__);
+       assertUIntArg ('port_type_id', __FUNCTION__);
        // tolerate empty value now to produce custom informative message later
        assertStringArg ('name', __FUNCTION__, TRUE);
        if (empty ($_REQUEST['name']))
@@ -185,7 +186,7 @@ function editPortForObject ()
                $port_rc = '"' . $_REQUEST['reservation_comment'] . '"';
        else
                $port_rc = 'NULL';
-       $error = commitUpdatePort ($_REQUEST['port_id'], $_REQUEST['name'], $_REQUEST['label'], $_REQUEST['l2address'], $port_rc);
+       $error = commitUpdatePort ($_REQUEST['port_id'], $_REQUEST['name'], $_REQUEST['port_type_id'], $_REQUEST['label'], $_REQUEST['l2address'], $port_rc);
        if ($error != '')
                return buildRedirectURL ('ERR2', array ($error));
        else
@@ -333,7 +334,7 @@ http://www.cisco.com/en/US/products/hw/routers/ps274/products_tech_note09186a008
                }
                else
                {
-                       $result = commitUpdatePort ($port_id, $port['name'], $port['label'], $port['l2address']);
+                       $result = commitUpdatePort ($port_id, $port['name'], $port_type, $port['label'], $port['l2address']);
                        if ($result == '')
                                $updated_count++;
                        else