r1828 + show record counter for tag selector in IPv4 address space
authorDenis Ovsienko <infrastation@yandex.ru>
Mon, 24 Mar 2008 20:06:35 +0000 (20:06 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Mon, 24 Mar 2008 20:06:35 +0000 (20:06 +0000)
inc/database.php
inc/interface.php

index 616ceb317d4e260405f017a2f05277efe4a790d4..e424a3027f04e088d0aa315d9c6db1376c39ef82 100644 (file)
@@ -2437,14 +2437,23 @@ function loadIPv4RSPoolTags ($id)
 function getTagList ()
 {
        $taglist = array();
-       $result = useSelectBlade ("select id, parent_id, tag from TagTree order by tag");
+       $query = "select id, parent_id, tag, target_realm as realm, count(target_id) as refcnt " .
+               "from TagTree left join TagStorage on id = tag_id " .
+               "group by id, target_realm order by tag";
+       $result = useSelectBlade ($query);
        while ($row = $result->fetch (PDO::FETCH_ASSOC))
-               $taglist[$row['id']] = array
-               (
-                       'id' => $row['id'],
-                       'tag' => $row['tag'],
-                       'parent_id' => $row['parent_id']
-               );
+       {
+               if (!isset ($taglist[$row['id']]))
+                       $taglist[$row['id']] = array
+                       (
+                               'id' => $row['id'],
+                               'tag' => $row['tag'],
+                               'parent_id' => $row['parent_id'],
+                               'refcnt' => array()
+                       );
+               if ($row['realm'])
+                       $taglist[$row['id']]['refcnt'][$row['realm']] = $row['refcnt'];
+       }
        $result->closeCursor();
        return $taglist;
 }
index 8b0909a0a33384854a659cca8aebd881dfca10f8..641522745f8e932630bacf3a020021405eafbfdf 100644 (file)
@@ -1740,7 +1740,7 @@ function renderAddressspace ()
        echo "</table>\n";
        finishPortlet();
        echo '</td><td class=pcright>';
-       renderTagFilterPortlet ($tagfilter);
+       renderTagFilterPortlet ($tagfilter, 'ipv4net');
        echo "</td></tr></table>\n";
 }
 
@@ -4716,7 +4716,7 @@ function renderTagOption ($taginfo, $level = 0)
 }
 
 // Idem, but select those, which are shown on the $_REQUEST['tagfiler'] array.
-function renderTagOptionForFilter ($taginfo, $tagfilter, $level = 0)
+function renderTagOptionForFilter ($taginfo, $tagfilter, $realm, $level = 0)
 {
        echo $level;
        $selected = '';
@@ -4729,9 +4729,9 @@ function renderTagOptionForFilter ($taginfo, $tagfilter, $level = 0)
        echo '<option value=' . $taginfo['id'] . "${selected}>";
        for ($i = 0; $i < $level; $i++)
                echo '-- ';
-       echo $taginfo['tag'] . "</option>\n";
+       echo $taginfo['tag'] . (isset ($taginfo['refcnt'][$realm]) ? ' (' . $taginfo['refcnt'][$realm] . ')' : '') . "</option>\n";
        foreach ($taginfo['kids'] as $kid)
-               renderTagOptionForFilter ($kid, $tagfilter, $level + 1);
+               renderTagOptionForFilter ($kid, $tagfilter, $realm, $level + 1);
 }
 
 function renderObjectTags ($id)
@@ -4803,7 +4803,7 @@ function printTagTRs()
        }
 }
 
-function renderTagFilterPortlet ($tagfilter)
+function renderTagFilterPortlet ($tagfilter, $realm)
 {
        global $pageno, $tabno;
        startPortlet ('Tag filter');
@@ -4817,7 +4817,7 @@ function renderTagFilterPortlet ($tagfilter)
        echo "<input type=hidden name=tab value=${tabno}>\n";
        echo '<select name=tagfilter[] multiple>';
        foreach ($tagTree as $taginfo)
-               renderTagOptionForFilter ($taginfo, $tagfilter);
+               renderTagOptionForFilter ($taginfo, $tagfilter, $realm);
        echo '</select><br>';
        echo "<input type=submit value='Apply'></form>\n";
        finishPortlet();