r1814 + introduce and use printTagTRs()
authorDenis Ovsienko <infrastation@yandex.ru>
Sat, 22 Mar 2008 20:17:57 +0000 (20:17 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Sat, 22 Mar 2008 20:17:57 +0000 (20:17 +0000)
+ implement rack tagging

inc/database.php
inc/functions.php
inc/interface.php
inc/navigation.php
inc/ophandlers.php

index eac7183f7b22d6115259394fb229c2e24286c970..36b8ef740d290ae593c09c853ade91903d8fb36c 100644 (file)
@@ -2406,6 +2406,11 @@ function loadIPv4PrefixTags ($id)
        return loadEntityTags ('ipv4net', $id);
 }
 
+function loadRackTags ($id)
+{
+       return loadEntityTags ('rack', $id);
+}
+
 function getTagList ()
 {
        $taglist = array();
index 8628f028302b2d8f3d02216c7ac5e85cc09d6619..1a98db7aa442fe854f85d3991f67162cd66d8cc4 100644 (file)
@@ -1461,9 +1461,20 @@ function loadRackObjectAutoTags()
 function loadIPv4PrefixAutoTags()
 {
        assertUIntArg ('id');
+       $subnet = getIPRange ($_REQUEST['id']);
        $ret = array();
        $ret[] = array ('tag' => '$id_' . $_REQUEST['id']);
-       $ret[] = array ('tag' => '$allipv4networks');
+       $ret[] = array ('tag' => '$allipv4nets');
+       $ret[] = array ('tag' => '$ipv4net-' . str_replace ('.', '-', $subnet['ip']) . '-' . $subnet['mask']);
+       return $ret;
+}
+
+function loadRackAutoTags()
+{
+       assertUIntArg ('rack_id');
+       $ret = array();
+       $ret[] = array ('tag' => '$id_' . $_REQUEST['rack_id']);
+       $ret[] = array ('tag' => '$allracks');
        return $ret;
 }
 
index c6e01d42cca49e5d4fc8e28a8d4891dd7a77e867..73c84d7ccefbc5c07d6352b89c95a775abf1a90e 100644 (file)
@@ -668,7 +668,7 @@ function printRefsOfType ($refs, $type, $eq)
 
 function renderRackObject ($object_id = 0)
 {
-       global $root, $expl_tags, $impl_tags, $auto_tags;
+       global $root;
        if ($object_id <= 0)
        {
                showError ('Invalid object_id', __FUNCTION__);
@@ -706,21 +706,7 @@ function renderRackObject ($object_id = 0)
        foreach (getAttrValues ($object_id, TRUE) as $record)
                if (!empty ($record['value']))
                        echo "<tr><th width='50%' class=opt_attr_th>${record['name']}:</th><td class=tdleft>${record['a_value']}</td></tr>\n";
-       if (getConfigVar ('SHOW_EXPLICIT_TAGS') == 'yes' and count ($expl_tags))
-       {
-               echo "<tr><th width='50%' class=tag_list_th>Explicit tags:</th><td class=tdleft>";
-               echo serializeTags ($expl_tags) . "</td></tr>\n";
-       }
-       if (getConfigVar ('SHOW_IMPLICIT_TAGS') == 'yes' and count ($impl_tags))
-       {
-               echo "<tr><th width='50%' class=tag_list_th>Implicit tags:</th><td class=tdleft>";
-               echo serializeTags ($impl_tags) . "</td></tr>\n";
-       }
-       if (getConfigVar ('SHOW_AUTOMATIC_TAGS') == 'yes' and count ($auto_tags))
-       {
-               echo "<tr><th width='50%' class=tag_list_th>Automatic tags:</th><td class=tdleft>";
-               echo serializeTags ($auto_tags) . "</td></tr>\n";
-       }
+       printTagTRs();
        echo "</table><br>\n";
        finishPortlet();
 
@@ -1861,7 +1847,7 @@ function renderAddNewRange ()
 
 function renderIPRange ($id)
 {
-       global $root, $pageno, $tabno, $expl_tags, $impl_tags, $auto_tags;
+       global $root, $pageno, $tabno;
        $maxperpage = getConfigVar ('IPV4_ADDRS_PER_PAGE');
        if (isset($_REQUEST['pg']))
                $page = $_REQUEST['pg'];
@@ -1880,21 +1866,7 @@ function renderIPRange ($id)
        echo "<tr><th width='50%' class=tdright>Utilization:</th><td class=tdleft>";
        renderProgressBar ($used/$total);
        echo "&nbsp;${used}/${total}</td></tr>\n";
-       if (getConfigVar ('SHOW_EXPLICIT_TAGS') == 'yes' and count ($expl_tags))
-       {
-               echo "<tr><th width='50%' class=tag_list_th>Explicit tags:</th><td class=tdleft>";
-               echo serializeTags ($expl_tags) . "</td></tr>\n";
-       }
-       if (getConfigVar ('SHOW_IMPLICIT_TAGS') == 'yes' and count ($impl_tags))
-       {
-               echo "<tr><th width='50%' class=tag_list_th>Implicit tags:</th><td class=tdleft>";
-               echo serializeTags ($impl_tags) . "</td></tr>\n";
-       }
-       if (getConfigVar ('SHOW_AUTOMATIC_TAGS') == 'yes' and count ($auto_tags))
-       {
-               echo "<tr><th width='50%' class=tag_list_th>Automatic tags:</th><td class=tdleft>";
-               echo serializeTags ($auto_tags) . "</td></tr>\n";
-       }
+       printTagTRs();
        echo "</table><br>\n";
        finishPortlet();
        echo "</td>\n";
@@ -2832,6 +2804,7 @@ function renderRackPage ($rack_id)
        echo "<tr><th width='50%' class=tdright>Objects:</th><td class=tdleft>";
        echo getObjectCount ($rackData);
        echo "</td></tr>\n";
+       printTagTRs();
        if (!empty ($rackData['comment']))
                echo "<tr><th width='50%' class=tdright>Comment:</th><td class=tdleft>${rackData['comment']}</td></tr>\n";
        echo '</table>';
@@ -4734,6 +4707,11 @@ function renderIPv4PrefixTags ($id)
        renderEntityTags ('ipv4net', 'id', $id);
 }
 
+function renderRackTags ($id)
+{
+       renderEntityTags ('rack', 'rack_id', $id);
+}
+
 function renderEntityTags ($entity_realm = '', $bypass_name, $entity_id = 0)
 {
        if ($entity_realm == '' or $entity_id <= 0)
@@ -4758,4 +4736,24 @@ function renderEntityTags ($entity_realm = '', $bypass_name, $entity_id = 0)
        finishPortlet();
 }
 
+function printTagTRs()
+{
+       global $expl_tags, $impl_tags, $auto_tags;
+       if (getConfigVar ('SHOW_EXPLICIT_TAGS') == 'yes' and count ($expl_tags))
+       {
+               echo "<tr><th width='50%' class=tag_list_th>Explicit tags:</th><td class=tdleft>";
+               echo serializeTags ($expl_tags) . "</td></tr>\n";
+       }
+       if (getConfigVar ('SHOW_IMPLICIT_TAGS') == 'yes' and count ($impl_tags))
+       {
+               echo "<tr><th width='50%' class=tag_list_th>Implicit tags:</th><td class=tdleft>";
+               echo serializeTags ($impl_tags) . "</td></tr>\n";
+       }
+       if (getConfigVar ('SHOW_AUTOMATIC_TAGS') == 'yes' and count ($auto_tags))
+       {
+               echo "<tr><th width='50%' class=tag_list_th>Automatic tags:</th><td class=tdleft>";
+               echo serializeTags ($auto_tags) . "</td></tr>\n";
+       }
+}
+
 ?>
index 6eeb10784e3b00ac2e9a33d8ef6cf51bbbf91fb4..00caaad9f43bbfd0b185e4f220041cae528c49ef 100644 (file)
@@ -47,14 +47,20 @@ $page['rack']['title_handler'] = 'dynamic_title_rack';
 $page['rack']['bypass'] = 'rack_id';
 $page['rack']['bypass_type'] = 'uint';
 $page['rack']['parent'] = 'row';
+$page['rack']['tagloader'] = 'loadRackTags';
+$page['rack']['autotagloader'] = 'loadRackAutoTags';
 $tab['rack']['default'] = 'View';
 $tab['rack']['edit'] = 'Properties';
 $tab['rack']['design'] = 'Design';
 $tab['rack']['problems'] = 'Problems';
+$tab['rack']['tags'] = 'Tags';
 $tabhandler['rack']['default'] = 'renderRackPage';
 $tabhandler['rack']['edit'] = 'renderEditRackForm';
 $tabhandler['rack']['design'] = 'renderRackDesign';
 $tabhandler['rack']['problems'] = 'renderRackProblems';
+$tabhandler['rack']['tags'] = 'renderRackTags';
+$trigger['rack']['tags'] = 'trigger_tags';
+$ophandler['rack']['tags']['save'] = 'saveRackTags';
 
 $page['objgroup']['title_handler'] = 'dynamic_title_objgroup';
 $page['objgroup']['handler'] = 'renderObjectGroup';
index 11a4dcb405f23fb2aef12ff1bec3d61c848ba7a9..9bef56beaf2d29f216c7c8f58c726b204a5239ca 100644 (file)
@@ -1348,6 +1348,11 @@ function saveIPv4PrefixTags ()
        return saveEntityTags ('ipv4net', 'id');
 }
 
+function saveRackTags ()
+{
+       return saveEntityTags ('rack', 'rack_id');
+}
+
 function destroyTag ()
 {
        global $root, $pageno, $tabno;