r1649 + renderRackSpaceForObject(): fixed working copy building
authorDenis Ovsienko <infrastation@yandex.ru>
Fri, 1 Feb 2008 13:12:12 +0000 (13:12 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Fri, 1 Feb 2008 13:12:12 +0000 (13:12 +0000)
+ add RACK_PRESELECT_THRESHOLD to where it is normally should be

ChangeLog
inc/interface.php
inc/ophandlers.php
install/init-dictbase.sql
upgrade.php

index 04451d8..e061dab 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,10 +3,10 @@
        bugfix: sticker reset icon did not work sometimes
        bugfix: don't fail rendering an empty rack row
        bugfix: rack operations were broken in 0.14.9
-       update: always put the only rack into working copy by default
        new feature: LDAP authentication
        new feature: borrow URL detection from Mantis BTS (suggested by Joakim Kasimir)
        new feature: Live PTR tab for DNS sync
+       new feature: rack population threshold for rackspace allocation
 0.14.9 2008-01-30
        bugfix: upgrade to 0.14.8 broke IPv4 prefix creation
        bugfix: more DB cleanups
index 5824b64..21e16c3 100644 (file)
@@ -1285,10 +1285,23 @@ function renderRackSpaceForObject ($object_id = 0)
        echo "<td class=pcleft height='1%'>";
        startPortlet ('Racks');
        $allRacksData = getRacksForRow();
-       if (count ($allRacksData) == 1)
-               renderRackMultiSelect ('rackmulti[]', $allRacksData, array_keys ($allRacksData));
-       else
-               renderRackMultiSelect ('rackmulti[]', $allRacksData, array_keys ($workingRacksData));
+       if (count ($allRacksData) <= getConfigVar ('RACK_PRESELECT_THRESHOLD'))
+       {
+               foreach (array_keys ($allRacksData) as $rack_id)
+               {
+                       $rackData = getRackData ($rack_id);
+                       if ($rackData == NULL)
+                       {
+                               showError ('getRackData() failed', __FUNCTION__);
+                               return NULL;
+                       }
+                       $workingRacksData[$rack_id] = $rackData;
+               }
+               foreach ($workingRacksData as &$rackData)
+                       applyObjectMountMask ($rackData, $object_id);
+               unset ($rackData);
+       }
+       renderRackMultiSelect ('rackmulti[]', $allRacksData, array_keys ($workingRacksData));
        echo "<br>";
        echo "<br>";
        finishPortlet();
index 389363b..abaf2ab 100644 (file)
@@ -919,6 +919,7 @@ function resetUIConfig()
        setConfigVar ('IPV4_PERFORMERS','1,4,7,8,12,14');
        setConfigVar ('NATV4_PERFORMERS','4,7,8');
        setConfigVar ('DETECT_URLS','no');
+       setConfigVar ('RACK_PRESELECT_THRESHOLD','1');
        return "${root}?page=${pageno}&tab=default&message=" . urlencode ("Reset complete");
 }
 
index ec5009e..cc6ffa9 100644 (file)
@@ -219,6 +219,7 @@ INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, descriptio
 INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, description) VALUES ('NATV4_PERFORMERS','4,7,8','string','yes','no','NATv4-capable object types');
 INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, description) VALUES ('USER_AUTH_SRC','database','string','no','no','User authentication source');
 INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, description) VALUES ('DETECT_URLS','no','string','yes','no','Detect URLs in text fields');
+INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, description) VALUES ('RACK_PRESELECT_THRESHOLD','1','uint','no','no','Rack pre-selection threshold');
 INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, description) VALUES ('DB_VERSION','0.14.10','string','no','yes','Database version.');
 
 INSERT INTO `UserPermission` (`user_id`, `page`, `tab`, `access`) VALUES (1,'%','%','yes');
index 82e34c7..a326c04 100644 (file)
@@ -633,6 +633,7 @@ CREATE TABLE `IPVirtualService` (
                        $query[] = "INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, description) VALUES ('DETECT_URLS','no','string','yes','no','Detect URLs in text fields')";
                        $query[] = "alter table RackHistory modify column height tinyint(3) unsigned";
                        $query[] = "alter table RackHistory add column thumb_data blob after comment";
+                       $query[] = "INSERT INTO `Config` VALUES ('RACK_PRESELECT_THRESHOLD','1','uint','no','no','Rack pre-selection threshold')";
                        $query[] = "update Config set varvalue = '0.14.10' where varname = 'DB_VERSION'";
                        break; // --------------------------------------------
 #              case '0.14.11':