r3555 more reworking of the autocomplete.
authorRyan Farrington <gwyden@dreamflyght.com>
Sun, 9 May 2010 06:09:38 +0000 (06:09 +0000)
committerRyan Farrington <gwyden@dreamflyght.com>
Sun, 9 May 2010 06:09:38 +0000 (06:09 +0000)
inc/functions.php
inc/init.php
inc/interface.php
index.php

index b3fea3c..578735c 100644 (file)
@@ -1975,8 +1975,9 @@ function cookOptgroups ($recordList, $object_type_id = 0, $existing_value = 0)
        {
                $screenlist = array();
                foreach (explode (';', getConfigVar ('VENDOR_SIEVE')) as $sieve)
-                       if (FALSE !== preg_match ("/^([^@]+)(@${object_type_id})?\$/", trim ($sieve), $regs))
+                       if (preg_match ("/^([^@]+)(@${object_type_id})?\$/", trim ($sieve), $regs)){
                                $screenlist[] = $regs[1];
+                       }
                foreach (array_keys ($ret) as $vendor)
                        if (in_array ($vendor, $screenlist))
                        {
index 32702ae..a74b730 100644 (file)
@@ -169,8 +169,17 @@ $user_given_tags = array();
 // This also can be modified in local.php.
 $pageheaders = array
 (
-       100 => "<link rel=stylesheet type='text/css' href=pi.css />",
-       200 => "<link rel=icon href='pix/racktables.ico' type='image/x-icon' />",
+       100 => "<link rel='STYLESHEET' type='text/css' href='css/pi.css' />",
+       101 => "<link rel='STYLESHEET' type='text/css' href='css/dhtmlxcombo.css' />",
+       102 => "<link rel='ICON' type='image/x-icon' href='pix/racktables.ico' />",
+       200     => "<script language='javascript' type='text/javascript' src='js/racktables.js'></script>",
+       201 => "<script language='javascript' type='text/javascript' src='js/jquery-1.3.1.min.js'></script>",
+       202 => "<script language='javascript' type='text/javascript' src='js/live_validation.js'></script>",
+       203 => "<script language='javascript' type='text/javascript' src='js/codepress/codepress.js'></script>",
+       204 => "<script language='javascript' type='text/javascript' src='js/dhtmlxcommon.js'></script>",
+       205 => "<script language='javascript' type='text/javascript' src='js/dhtmlxcombo.js'></script>",
+       206 => "<script language='javascript'>window.dhx_globalImgPath='pix/'</script>",
+
 );
 
 if (!isset ($script_mode) or $script_mode !== TRUE)
index 4a5c903..cf4af05 100644 (file)
@@ -735,9 +735,11 @@ function renderEditRackForm ($rack_id)
        finishPortlet();
 }
 
-function printSelect ($optionList, $select_attrs = array(), $selected_id = NULL)
+function printSelect ($optionList, $select_attrs = array(), $selected_id = NULL, $autocomplete = false)
 {
        echo getSelect ($optionList, $select_attrs, $selected_id);
+       if (array_key_exists ('id', $select_attrs) && $autocomplete)
+               echo "<script>$(document).ready(function() {var z=dhtmlXComboFromSelect('" . $select_attrs['id'] . "');z.enableFilteringMode(true);})</script>";
 }
 
 // Input array keys are OPTION VALUEs and input array values are OPTION text.
@@ -751,16 +753,18 @@ function getSelect ($optionList, $select_attrs = array(), $selected_id = NULL)
                $ret .= " ${attr_name}=${attr_value}";
        $ret .= '>';
        if (is_null($selected_id))
-               echo "<option value=''></option>";
+               $ret .= "<option value=''></option>";
        foreach ($optionList as $dict_key => $dict_value)
                $ret .= "<option value='${dict_key}'" . ($dict_key == $selected_id ? ' selected' : '') . ">${dict_value}</option>";
        $ret .= '</select>';
        return $ret;
 }
 
-function printNiftySelect ($groupList, $select_attrs = array(), $selected_id = NULL)
+function printNiftySelect ($groupList, $select_attrs = array(), $selected_id = NULL, $autocomplete = false)
 {
        echo getNiftySelect ($groupList, $select_attrs, $selected_id);
+       if (array_key_exists ('id', $select_attrs) && $autocomplete)
+               echo "<script>$(document).ready(function() {var z=dhtmlXComboFromSelect('" . $select_attrs['id'] . "');z.enableFilteringMode(true);})</script>";
 }
 
 // Input is a cooked list of OPTGROUPs, each with own sub-list of OPTIONs in the same
@@ -2631,17 +2635,10 @@ function renderIPv4AddressAllocations ($dottedquad)
        {
                global $aat;
                printOpFormIntro ('addIPv4Allocation');
-               echo "<script>";
-               echo "window.dhx_globalImgPath='/pix/';";
-               echo "</script>";
-               echo "<script src='js/dhtmlxcommon.js'></script>";
-               echo "<script src='js/dhtmlxcombo.js'></script>";
-               echo "<link rel='STYLESHEET' type='text/css' href='css/dhtmlxcombo.css'>";
                echo "<tr><td>";
                printImageHREF ('add', 'allocate', TRUE);
                echo "</td><td>";
-               printSelect (getNarrowObjectList ('IPV4OBJ_LISTSRC'), array ('name' => 'object_id', 'tabindex' => 100, 'id' => 'object_id'));
-               echo "<script>$(document).ready(function() {var z=dhtmlXComboFromSelect('object_id');z.enableFilteringMode(true);})</script>";  
+               printSelect (getNarrowObjectList ('IPV4OBJ_LISTSRC'), array ('name' => 'object_id', 'tabindex' => 100, 'id' => 'object_id'), true);
                echo "</td><td><input type=text tabindex=101 name=bond_name size=10></td><td>";
                printSelect ($aat, array ('name' => 'bond_type', 'tabindex' => 102, 'regular'));
                echo "</td><td>";
@@ -3329,22 +3326,12 @@ function renderPortOIFCompatEditor()
        function printNewitemTR()
        {
                printOpFormIntro ('add');
-               echo "<script>";
-               echo "window.dhx_globalImgPath='/pix/';";
-               echo "</script>";
-               echo "<script src='js/dhtmlxcommon.js'></script>";
-               echo "<script src='js/dhtmlxcombo.js'></script>";
-               echo "<link rel='STYLESHEET' type='text/css' href='css/dhtmlxcombo.css'>";
-
                echo '<tr><th class=tdleft>';
                printImageHREF ('add', 'add pair', TRUE);
                echo '</th><th class=tdleft>';
-               printSelect (readChapter (CHAP_PORTTYPE), array ('name' => 'type1', 'id' => 'type1'));
+               printSelect (readChapter (CHAP_PORTTYPE), array ('name' => 'type1', 'id' => 'type1'),Null,true);
                echo '</th><th class=tdleft>';
-               printSelect (readChapter (CHAP_PORTTYPE), array ('name' => 'type2', 'id' => 'type2'));
-               echo "<script>$(document).ready(function() {var z=dhtmlXComboFromSelect('type1');z.enableFilteringMode(true);})</script>";      
-               echo "<script>$(document).ready(function() {var z=dhtmlXComboFromSelect('type2');z.enableFilteringMode(true);})</script>";      
-
+               printSelect (readChapter (CHAP_PORTTYPE), array ('name' => 'type2', 'id' => 'type2'),Null,true);
                echo '</th></tr></form>';
        }
 
@@ -4334,23 +4321,16 @@ function renderRSPoolLBForm ($pool_id)
                startPortlet ('Add new');
                echo "<table cellspacing=0 cellpadding=5 align=center>";
                printOpFormIntro ('addLB');
-               echo "<script>";
-               echo "window.dhx_globalImgPath='/pix/';";
-               echo "</script>";
-               echo "<script src='js/dhtmlxcommon.js'></script>";
-               echo "<script src='js/dhtmlxcombo.js'></script>";
-               echo "<link rel='STYLESHEET' type='text/css' href='css/dhtmlxcombo.css'>";
                echo "<tr valign=top><th class=tdright>Load balancer</th><td class=tdleft>";
-               printSelect (getNarrowObjectList ('IPV4LB_LISTSRC'), array ('name' => 'object_id', 'tabindex' => 1, 'id' => 'object_id'));
+               printSelect (getNarrowObjectList ('IPV4LB_LISTSRC'), array ('name' => 'object_id', 'tabindex' => 1, 'id' => 'object_id'), Null, true);
                echo '</td><td class=tdcenter valign=middle rowspan=2>';
                printImageHREF ('ADD', 'Configure LB', TRUE, 5);
                echo '</td></tr><tr><th class=tdright>Virtual service</th><td class=tdleft>';
-               printSelect (getIPv4VSOptions(), array ('name' => 'vs_id', 'tabindex' => 2, 'id' => 'vs_id'));
+               printSelect (getIPv4VSOptions(), array ('name' => 'vs_id', 'tabindex' => 2, 'id' => 'vs_id'),Null,true);
                echo "</td></tr>\n";
                echo "<tr><th class=tdright>VS config</th><td colspan=2><textarea tabindex=3 name=vsconfig rows=10 cols=80></textarea></td></tr>";
                echo "<tr><th class=tdright>RS config</th><td colspan=2><textarea tabindex=4 name=rsconfig rows=10 cols=80></textarea></td></tr>";
-               echo "<script>$(document).ready(function() {var z=dhtmlXComboFromSelect('object_id');z.enableFilteringMode(true);})</script>";  
-               echo "<script>$(document).ready(function() {var z=dhtmlXComboFromSelect('vs_id');z.enableFilteringMode(true);})</script>";      
+
 
                echo "</form></table>\n";
                finishPortlet();
@@ -4400,23 +4380,15 @@ function renderVServiceLBForm ($vs_id)
                startPortlet ('Add new');
                echo '<table cellspacing=0 cellpadding=5 align=center>';
                printOpFormIntro ('addLB');
-               echo "<script>";
-               echo "window.dhx_globalImgPath='/pix/';";
-               echo "</script>";
-               echo "<script src='js/dhtmlxcommon.js'></script>";
-               echo "<script src='js/dhtmlxcombo.js'></script>";
-               echo "<link rel='STYLESHEET' type='text/css' href='css/dhtmlxcombo.css'>";
                echo '<tr valign=top><th class=tdright>Load balancer</th><td class=tdleft>';
-               printSelect (getNarrowObjectList ('IPV4LB_LISTSRC'), array ('name' => 'object_id', 'tabindex' => 101, 'id' => 'object_id'));
+               printSelect (getNarrowObjectList ('IPV4LB_LISTSRC'), array ('name' => 'object_id', 'tabindex' => 101, 'id' => 'object_id'),Null,true);
                echo '</td><td rowspan=2 class=tdcenter valign=middle>';
                printImageHREF ('ADD', 'Configure LB', TRUE, 105);
                echo '</td></tr><tr><th class=tdright>RS pool</th><td class=tdleft>';
-               printSelect (getIPv4RSPoolOptions(), array ('name' => 'pool_id', 'tabindex' => 102, 'id' => 'pool_id'));
+               printSelect (getIPv4RSPoolOptions(), array ('name' => 'pool_id', 'tabindex' => 102, 'id' => 'pool_id'),Null,true);
                echo '</td></tr>';
                echo '<tr><th class=tdright>VS config</th><td colspan=2><textarea tabindex=103 name=vsconfig rows=10 cols=80></textarea></td></tr>';
                echo '<tr><th class=tdright>RS config</th><td colspan=2><textarea tabindex=104 name=rsconfig rows=10 cols=80></textarea></td></tr>';
-               echo "<script>$(document).ready(function() {var z=dhtmlXComboFromSelect('object_id');z.enableFilteringMode(true);})</script>";  
-               echo "<script>$(document).ready(function() {var z=dhtmlXComboFromSelect('pool_id');z.enableFilteringMode(true);})</script>";    
                echo '</form></table>';
                finishPortlet();
        }
@@ -5220,24 +5192,16 @@ function renderObjectSLB ($object_id)
                startPortlet ('Add new');
                echo '<table cellspacing=0 cellpadding=5 align=center>';
                printOpFormIntro ('addLB');
-               echo "<script>";
-               echo "window.dhx_globalImgPath='/pix/';";
-               echo "</script>";
-               echo "<script src='js/dhtmlxcommon.js'></script>";
-               echo "<script src='js/dhtmlxcombo.js'></script>";
-               echo "<link rel='STYLESHEET' type='text/css' href='css/dhtmlxcombo.css'>";
                echo '<tr><th class=tdright>Virtual service</th><td class=tdleft>';
-               printSelect (getIPv4VSOptions(), array ('name' => 'vs_id', 'tabindex' => 101, 'id' => 'vs_id'));
+               printSelect (getIPv4VSOptions(), array ('name' => 'vs_id', 'tabindex' => 101, 'id' => 'vs_id'),Null,true);
                echo '</td><td class=tdcenter valign=middle rowspan=2>';
                printImageHREF ('ADD', 'Configure LB', TRUE, 105);
                echo '</td></tr>';
                echo '</tr><th class=tdright>RS pool</th><td class=tdleft>';
-               printSelect (getIPv4RSPoolOptions(), array ('name' => 'pool_id', 'tabindex' => 102, 'id' => 'pool_id'));
+               printSelect (getIPv4RSPoolOptions(), array ('name' => 'pool_id', 'tabindex' => 102, 'id' => 'pool_id'),Null,true);
                echo "</td></tr>";
                echo '<tr><th class=tdright>VS config</th><td colspan=2><textarea tabindex=103 name=vsconfig rows=10 cols=80></textarea></td></tr>';
                echo '<tr><th class=tdright>RS config</th><td colspan=2><textarea tabindex=104 name=rsconfig rows=10 cols=80></textarea></td></tr>';
-               echo "<script>$(document).ready(function() {var z=dhtmlXComboFromSelect('vs_id');z.enableFilteringMode(true);})</script>";      
-               echo "<script>$(document).ready(function() {var z=dhtmlXComboFromSelect('pool_id');z.enableFilteringMode(true);})</script>";    
                echo '</form></table>';
                finishPortlet();
        }
@@ -6396,20 +6360,12 @@ function renderPortIFCompatEditor()
        function printNewitemTR()
        {
                printOpFormIntro ('add');
-               echo "<script>";
-               echo "window.dhx_globalImgPath='/pix/';";
-               echo "</script>";
-               echo "<script src='js/dhtmlxcommon.js'></script>";
-               echo "<script src='js/dhtmlxcombo.js'></script>";
-               echo "<link rel='STYLESHEET' type='text/css' href='css/dhtmlxcombo.css'>";
                echo '<tr><th class=tdleft>';
                printImageHREF ('add', 'add pair', TRUE);
                echo '</th><th class=tdleft>';
-               printSelect (getPortIIFOptions(), array ('name' => 'iif_id', 'id' => 'iif_id'));
+               printSelect (getPortIIFOptions(), array ('name' => 'iif_id', 'id' => 'iif_id'),Null,true);
                echo '</th><th class=tdleft>';
-               printSelect (readChapter (CHAP_PORTTYPE), array ('name' => 'oif_id', 'id' => 'oif_id'));
-               echo "<script>$(document).ready(function() {var z=dhtmlXComboFromSelect('iif_id');z.enableFilteringMode(true);})</script>";     
-               echo "<script>$(document).ready(function() {var z=dhtmlXComboFromSelect('oif_id');z.enableFilteringMode(true);})</script>";     
+               printSelect (readChapter (CHAP_PORTTYPE), array ('name' => 'oif_id', 'id' => 'oif_id'),Null,true);
                echo '</th></tr></form>';
        }
 
@@ -6485,12 +6441,6 @@ function render8021QOrderForm ($some_id)
                $all_vswitches = getVLANSwitches();
                global $pageno;
                printOpFormIntro ('add');
-               echo "<script>";
-               echo "window.dhx_globalImgPath='/pix/';";
-               echo "</script>";
-               echo "<script src='js/dhtmlxcommon.js'></script>";
-               echo "<script src='js/dhtmlxcombo.js'></script>";
-               echo "<link rel='STYLESHEET' type='text/css' href='css/dhtmlxcombo.css'>";
                echo '<tr>';
                if ($pageno != 'object')
                {
@@ -6500,8 +6450,7 @@ function render8021QOrderForm ($some_id)
                        foreach (getNarrowObjectList ('VLANSWITCH_LISTSRC') as $object_id => $object_dname)
                                if (!in_array ($object_id, $all_vswitches))
                                        $options[$object_id] = $object_dname;
-                       printSelect ($options, array ('name' => 'object_id', 'tabindex' => 101, 'id' => 'object_id'));
-                       echo "<script>$(document).ready(function() {var z=dhtmlXComboFromSelect('object_id');z.enableFilteringMode(true);})</script>";  
+                       printSelect ($options, array ('name' => 'object_id', 'tabindex' => 101, 'id' => 'object_id'),Null,true);
                        echo '</td>';
                }
                if ($pageno != 'vlandomain')
@@ -6509,16 +6458,14 @@ function render8021QOrderForm ($some_id)
                        $options = array();
                        foreach (getVLANDomainList() as $vdom_id => $vdom_info)
                                $options[$vdom_id] = $vdom_info['description'];
-                       echo '<td>' . getSelect ($options, array ('name' => 'vdom_id', 'tabindex' => 102, 'id' => 'vdom_id'), getConfigVar ('DEFAULT_VDOM_ID')) . '</td>';
-                       echo "<script>$(document).ready(function() {var z=dhtmlXComboFromSelect('vdom_id');z.enableFilteringMode(true);})</script>";    
+                       echo '<td>' . printSelect ($options, array ('name' => 'vdom_id', 'tabindex' => 102, 'id' => 'vdom_id'), getConfigVar ('DEFAULT_VDOM_ID'), true) . '</td>';
                }
                if ($pageno != 'vst')
                {
                        $options = array();
                        foreach (getVLANSwitchTemplates() as $vst_id => $vst_info)
                                $options[$vst_id] = $vst_info['description'];
-                       echo '<td>' . getSelect ($options, array ('name' => 'vst_id', 'tabindex' => 103, 'id' => 'vst_id'), getConfigVar ('DEFAULT_VST_ID')) . '</td>';
-                       echo "<script>$(document).ready(function() {var z=dhtmlXComboFromSelect('vst_id');z.enableFilteringMode(true);})</script>";     
+                       echo '<td>' . printSelect ($options, array ('name' => 'vst_id', 'tabindex' => 103, 'id' => 'vst_id'), getConfigVar ('DEFAULT_VST_ID'), true) . '</td>';
                }
                echo '<td>' . getImageHREF ('Attach', 'set', TRUE, 104) . '</td></tr></form>';
        }
index 2c060ec..0309202 100644 (file)
--- a/index.php
+++ b/index.php
@@ -18,11 +18,7 @@ echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">'."\n";
 echo '<head><title>' . getTitle ($pageno) . "</title>\n";
 printPageHeaders();
 ?>
-       <script language='javascript' type='text/javascript' src='js/racktables.js'></script>
-       <script language='javascript' type='text/javascript' src='js/jquery-1.3.1.min.js'></script>
-       <script language='javascript' type='text/javascript' src='js/live_validation.js'></script>
-       <script language='javascript' type='text/javascript' src='js/codepress/codepress.js'></script>
-       </head>
+</head>
 <body>
  <table border=0 cellpadding=0 cellspacing=0 width='100%' height='100%' class=maintable>
  <tr class=mainheader>