r1934 + treat tag list to pre-assign to newly added rack(s)
authorDenis Ovsienko <infrastation@yandex.ru>
Tue, 3 Jun 2008 08:43:51 +0000 (08:43 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Tue, 3 Jun 2008 08:43:51 +0000 (08:43 +0000)
+ commitAddRack(): use standard helpers, don't invent wheels

inc/database.php
inc/interface.php

index 192b1bd..00fea0e 100644 (file)
@@ -318,28 +318,48 @@ function getObjectPortsAndLinks ($object_id = 0)
        return $ret;
 }
 
-function commitAddRack ($name, $height, $row_id, $comment)
+function commitAddRack ($name, $height, $row_id, $comment, $taglist)
 {
-       global $dbxlink;
-       $query = "insert into Rack(row_id, name, height, comment) values('${row_id}', '${name}', '${height}', '${comment}')";
-       $result1 = $dbxlink->query ($query);
-       if ($result1 == NULL)
+       $result = useInsertBlade
+       (
+               'Rack',
+               array
+               (
+                       'row_id' => $row_id,
+                       'name' => "'${name}'",
+                       'height' =>  $height,
+                       'comment' => "'${comment}'"
+               )
+       );
+       if ($result == NULL)
        {
-               showError ('SQL query failed', __FUNCTION__);
+               showError ('useInsertBlade() failed', __FUNCTION__);
                return FALSE;
        }
-       // last_insert_id() is MySQL-specific
-       $query = 'select last_insert_id()';
-       $result2 = $dbxlink->query ($query);
-       if ($result2 == NULL)
+
+       if (($result = useSelectBlade ('select last_insert_id()')) == NULL) 
        {
-               showError ('Cannot get last ID', __FUNCTION__);
+               showError ('Query #2 failed', __FUNCTION__);
                return FALSE;
        }
        // we always have a row
-       $row = $result2->fetch (PDO::FETCH_NUM);
+       $row = $result->fetch (PDO::FETCH_NUM);
        $last_insert_id = $row[0];
-       $result2->closeCursor();
+       $result->closeCursor();
+       foreach ($taglist as $tag_id)
+               if (useInsertBlade
+               (
+                       'TagStorage',
+                       array
+                       (
+                               'target_realm' => "'rack'",
+                               'target_id' => $last_insert_id,
+                               'tag_id' => $tag_id
+                       )
+               ) == FALSE)
+                       $errcount++;    
+       if ($errcount)
+               showError ("Experienced ${errcount} errors adding tags for the rack");
        return recordHistory ('Rack', "id = ${last_insert_id}");
 }
 
index 8d71889..b80e9a1 100644 (file)
@@ -305,6 +305,7 @@ function renderNewRackForm ($row_id)
 {
        global $pageno, $tabno;
        $log = array();
+       $taglist = isset ($_REQUEST['taglist']) ? $_REQUEST['taglist'] : array();
 
        // Look for current submit.
        if (isset ($_REQUEST['got_data']))
@@ -314,7 +315,7 @@ function renderNewRackForm ($row_id)
                assertStringArg ('rack_comment', __FUNCTION__, TRUE);
                $name = $_REQUEST['rack_name'];
 
-               if (commitAddRack ($name, $_REQUEST['rack_height'], $row_id, $_REQUEST['rack_comment']) === TRUE)
+               if (commitAddRack ($name, $_REQUEST['rack_height'], $row_id, $_REQUEST['rack_comment'], $taglist) === TRUE)
                        $log[] = array ('code' => 'success', 'message' => "Added new rack '${name}'");
                else
                        $log[] = array ('code' => 'error', 'message' => __FUNCTION__ . ': commitAddRack() failed');
@@ -336,13 +337,14 @@ function renderNewRackForm ($row_id)
                                $names2[] = rtrim ($parts[0]);
                }
                foreach ($names2 as $cname)
-                       if (commitAddRack ($cname, $_REQUEST['rack_height'], $row_id, '') === TRUE)
+                       if (commitAddRack ($cname, $_REQUEST['rack_height'], $row_id, '', $taglist) === TRUE)
                                $log[] = array ('code' => 'success', 'message' => "Added new rack '${cname}'");
                        else
                                $log[] = array ('code' => 'error', 'message' => __FUNCTION__ . ': commitAddRack() failed');
        }
        printLog ($log);
 
+       echo "<table border=0 width='100%'><tr><td valign=top>";
        // Render a form for the next.
        startPortlet ('Add one');
        echo '<form>';
@@ -357,14 +359,18 @@ function renderNewRackForm ($row_id)
        echo "<tr><th class=tdright>Height in units (*):</th><td class=tdleft><input type=text name=rack_height tabindex=2 value='${defh}'></td></tr>\n";
        echo "<tr><th class=tdright>Comment:</th><td class=tdleft><input type=text name=rack_comment tabindex=3></td></tr>\n";
        echo "<tr><td class=submit colspan=2><input type=submit name=got_data value='Add'></td></tr>\n";
-       echo '</form></table>';
+       echo '</table>';
+       finishPortlet();
+       echo '</td>';
+
+       echo '<td rowspan=2 valign=top>';
+       startPortlet ('Pre-assigned tags');
+       renderTagSelect();
        finishPortlet();
+       echo '</td></tr>';
 
+       echo '<tr><td valign=top>';
        startPortlet ('Add many');
-       echo '<form>';
-       echo "<input type=hidden name=page value=${pageno}>";
-       echo "<input type=hidden name=tab value=${tabno}>";
-       echo "<input type=hidden name=row_id value=${row_id}>";
        echo '<table border=0 align=center>';
        $defh = getConfigVar ('DEFAULT_RACK_HEIGHT');
        if ($defh == 0)
@@ -374,6 +380,8 @@ function renderNewRackForm ($row_id)
        echo "<tr><td class=submit colspan=2><input type=submit name=got_mdata value='Add'></td></tr>\n";
        echo '</form></table>';
        finishPortlet();
+       echo '</td></tr>';
+       echo '</table>';
 }
 
 function renderEditObjectForm ($object_id)