r2547 Fixed bug from ticket:200
authorDenis Yeldandi <dyeldandi@gmail.com>
Sun, 15 Mar 2009 10:33:16 +0000 (10:33 +0000)
committerDenis Yeldandi <dyeldandi@gmail.com>
Sun, 15 Mar 2009 10:33:16 +0000 (10:33 +0000)
inc/interface.php
inc/ophandlers.php

index a3f4877..a73263e 100644 (file)
@@ -1628,7 +1628,7 @@ function renderRackSpaceForObject ($object_id = 0)
        }
 
        // ...and then add those chosen by user (if any).
-       if ($is_update)
+       if (isset($_REQUEST['rackmulti']))
                foreach ($_REQUEST['rackmulti'] as $cand_id)
                {
                        if (!isset ($workingRacksData[$cand_id]))
@@ -1643,9 +1643,14 @@ function renderRackSpaceForObject ($object_id = 0)
                        }
                }
 
+       printOpFormIntro ('updateObjectAllocation');
+
        // Do it only once...
-       foreach ($workingRacksData as &$rackData)
+       foreach ($workingRacksData as $rackId => &$rackData)
+       {
                applyObjectMountMask ($rackData, $object_id);
+               echo "<input type=\"hidden\" name=\"rackmulti[]\" value=\"$rackId\">";
+       }
        // Now we workaround an old caveat: http://bugs.php.net/bug.php?id=37410
        unset ($rackData);
 
@@ -1654,7 +1659,6 @@ function renderRackSpaceForObject ($object_id = 0)
 
        showMessageOrError();
 
-       printOpFormIntro ('updateObjectAllocation');
 
        // Main layout starts.
        echo "<table border=0 class=objectview cellspacing=0 cellpadding=0><tr>";
@@ -1724,6 +1728,7 @@ function renderRackSpaceForObject ($object_id = 0)
        finishPortlet();
        echo "</td>\n";
 
+
        echo "</form>\n";
        echo "</tr></table>\n";
 }
index 020a746..63fb3d2 100644 (file)
@@ -667,6 +667,7 @@ function updateObjectAllocation ()
                        showError ('getResidentRacksData() failed', __FUNCTION__);
                        return;
                }
+               $workingRacksData = array();
                foreach ($_REQUEST['rackmulti'] as $cand_id)
                {
                        if (!isset ($workingRacksData[$cand_id]))
@@ -680,8 +681,9 @@ function updateObjectAllocation ()
                                $workingRacksData[$cand_id] = $rackData;
                        }
                }
-               foreach ($workingRacksData as &$rackData)
-                       applyObjectMountMask ($rackData, $object_id);
+
+               foreach ($workingRacksData as &$rd)
+                       applyObjectMountMask ($rd, $object_id);
 
                $oldMolecule = getMoleculeForObject ($object_id);
                $worldchanged = FALSE;
@@ -696,10 +698,13 @@ function updateObjectAllocation ()
        }
        else
        {
-               unset($_REQUEST['page']);
-               unset($_REQUEST['tab']);
-               unset($_REQUEST['op']);
-               return buildWideRedirectURL(array(), NULL, NULL, $_REQUEST);
+               unset($_GET['page']);
+               unset($_GET['tab']);
+               unset($_GET['op']);
+               unset($_POST['page']);
+               unset($_POST['tab']);
+               unset($_POST['op']);
+               return buildWideRedirectURL(array(), NULL, NULL, array_merge($_GET, $_POST));
        }
 
 }