r1893 + introduce and make use of getTagFilter()
authorDenis Ovsienko <infrastation@yandex.ru>
Wed, 16 Apr 2008 17:21:15 +0000 (17:21 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Wed, 16 Apr 2008 17:21:15 +0000 (17:21 +0000)
+ fix rackspace browsing with tag filtering enabled

inc/database.php
inc/functions.php
inc/interface.php

index 65e0275..0605bf8 100644 (file)
@@ -125,15 +125,17 @@ function getObjectList ($type_id = 0, $tagfilter = array())
        return $ret;
 }
 
-function getRacksForRow ($row_id = 0)
+function getRacksForRow ($row_id = 0, $tagfilter = array())
 {
        $query =
                "select Rack.id, Rack.name, height, Rack.comment, row_id, " .
                "'yes' as left_is_front, 'yes' as bottom_is_unit1, dict_value as row_name " .
                "from Rack left join Dictionary on row_id = dict_key natural join Chapter " .
+               "left join TagStorage on Rack.id = TagStorage.target_id and target_realm = 'rack' " .
                "where chapter_name = 'RackRow' and Rack.deleted = 'no' " .
                (($row_id == 0) ? "" : "and row_id = ${row_id} ") .
-               "order by row_name, Rack.id";
+               getWhereClause ($tagfilter) .
+               " order by row_name, Rack.id";
        $result = useSelectBlade ($query);
        $ret = array();
        $clist = array
index a8309fe..3c081e5 100644 (file)
@@ -1641,4 +1641,8 @@ function getStringFromTrail ($trail)
        return $str;
 }
 
+function getTagFilter ()
+{
+       return isset ($_REQUEST['tagfilter']) ? complementByKids ($_REQUEST['tagfilter']) : array();
+}
 ?>
index b64ea55..e347712 100644 (file)
@@ -59,8 +59,7 @@ function renderIndex ()
 
 function renderRackspace ()
 {
-       $tagfilter = isset ($_REQUEST['tagfilter']) ? $_REQUEST['tagfilter'] : array();
-       $tagfilter = complementByKids ($tagfilter);
+       $tagfilter = getTagFilter();
        echo "<table class=objview border=0 width='100%'><tr><td class=pcleft>";
        renderTagFilterPortlet ($tagfilter, 'rack');
        echo '</td><td class=pcright>';
@@ -73,7 +72,7 @@ function renderRackspace ()
        foreach ($rackrowList as $rackrow)
        {
                echo "<tr class=row_${order}><th><a href='${root}?page=row&row_id=${rackrow['dict_key']}'>${rackrow['dict_value']}</a></th>";
-               $rackList = getRacksForRow ($rackrow['dict_key']);
+               $rackList = getRacksForRow ($rackrow['dict_key'], $tagfilter);
                echo "<td><table border=0 cellspacing=5><tr>";
                foreach ($rackList as $dummy => $rack)
                {
@@ -1525,8 +1524,7 @@ function renderProblematicObjectsPortlet ()
 function renderObjectGroupSummary ()
 {
        global $root;
-       $tagfilter = isset ($_REQUEST['tagfilter']) ? $_REQUEST['tagfilter'] : array();
-       $tagfilter = complementByKids ($tagfilter);
+       $tagfilter = getTagFilter();
        $summary = getObjectGroupInfo();
        if ($summary === NULL)
        {
@@ -1875,8 +1873,7 @@ function renderAddressspace ()
 
        startPortlet ('Subnets');
        echo "<table class='widetable' border=0 cellpadding=10 cellspacing=0 align='center'>\n";
-       $tagfilter = isset ($_REQUEST['tagfilter']) ? $_REQUEST['tagfilter'] : array();
-       $tagfilter = complementByKids ($tagfilter);
+       $tagfilter = getTagFilter();
        $addrspaceList = getAddressspaceList ($tagfilter);
        echo "<tr><th>Subnet</th><th>Name</th><th>Utilization</th></tr>";
        foreach ($addrspaceList as $iprange)
@@ -4597,8 +4594,7 @@ function renderRSPool ($pool_id = 0)
 function renderVSList ()
 {
        global $root, $nextorder;
-       $tagfilter = isset ($_REQUEST['tagfilter']) ? $_REQUEST['tagfilter'] : array();
-       $tagfilter = complementByKids ($tagfilter);
+       $tagfilter = getTagFilter();
        $vslist = getVSList ($tagfilter);
        echo "<table border=0 class=objectview>\n";
        echo "<tr><td class=pcleft>";
@@ -4694,8 +4690,7 @@ function renderVSListEditForm ()
 function renderRSPoolList ()
 {
        global $root, $nextorder;
-       $tagfilter = isset ($_REQUEST['tagfilter']) ? $_REQUEST['tagfilter'] : array();
-       $tagfilter = complementByKids ($tagfilter);
+       $tagfilter = getTagFilter();
        $pool_list = getRSPoolList ($tagfilter);
        if ($pool_list === NULL)
        {