View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 923 | RackTables | VMs/containers | public | 2013-07-05 10:48 | 2013-07-21 01:07 |
| Reporter | MWilkinson | Assigned To | adoom42 | ||
| Priority | high | Severity | tweak | Reproducibility | N/A |
| Status | closed | Resolution | fixed | ||
| Product Version | 0.20.5 | ||||
| Target Version | 0.20.6 | Fixed in Version | 0.20.6 | ||
| Summary | 923: Enhancement to Blade layout in Chassis | ||||
| Description | With previous bug request (745), this enhancement allows for blades of different widths/heights to be displayed in the chassis. The information for a blade will need to be added to the Hardware Description Dictionary to allow the patch to correctly display blades that are full height/double width The slot number used for the blade must be the top left slot used in the chassis - chassis slots are numbered in the code from 1 in the top left, reading left to right, top to bottom (ie in a 2 row 16 slot chassis, slots are 1 - 8 on top row, then 9 - 16, with slot 9 being under slot 1, etc) Where a blade requires a different width/height to the standard 1x1 configuration, append '%L<r>,<c>% to the dictionary description - where <r> is how many rows are needed (in the case of full height blades), and <c> is the number of columns needed (in the case of double width blades) | ||||
| Tags | No tags attached. | ||||
| Attached Files | bladelayout-0.20.5.patch (3,067 bytes)
diff -uNr RackTables-0.20.5-base/wwwroot/inc/interface.php RackTables-0.20.5-dev/wwwroot/inc/interface.php
--- RackTables-0.20.5-base/wwwroot/inc/interface.php 2013-06-23 22:50:37.000000000 +0100
+++ RackTables-0.20.5-dev/wwwroot/inc/interface.php 2013-07-05 09:25:10.684775104 +0100
@@ -640,7 +640,7 @@
$body = ", visible label is \"${objectData['label']}\"";
// Display list of child objects, if any
$objectChildren = getEntityRelatives ('children', 'object', $objectData['id']);
- $slotInfo = $slotData = $slotTitle = array ();
+ $slotRows = $slotCols = $slotInfo = $slotData = $slotTitle = array ();
if (count($objectChildren) > 0)
{
foreach ($objectChildren as $child)
@@ -648,9 +648,25 @@
$childNames[] = $child['name'];
$childData = spotEntity ('object', $child['entity_id']);
$attrData = getAttrValues ($child['entity_id']);
+ $numRows = 1;
+ $numCols = 1;
+ if (isset ($attrData[2]))
+ {
+ extractLayout ($attrData[2]);
+ if (isset ($attrData[2]['rows']))
+ {
+ $numRows = $attrData[2]['rows'];
+ $numCols = $attrData[2]['cols'];
+ }
+ }
if (isset ($attrData['28'])) // slot number
{
$slot = $attrData['28']['value'];
+ if ( preg_match("/\d+/", $slot, $matches) )
+ $slot = $matches[0];
+ $slotRows[$slot] = $numRows;
+ $slotCols[$slot] = $numCols;
+
$slotInfo[$slot] = $child['name'];
$slotData[$slot] = $child['entity_id'];
if (strlen ($childData['asset_no']))
@@ -688,19 +704,40 @@
$s = ($r * $cols) + $c + 1;
if (isset ($slotData[$s]))
{
- echo "<td class='state_T";
- if ($slotData[$s] == $hl_obj_id)
- echo 'h';
- echo "'>${slotTitle[$s]}";
- if ($layout == 'V')
+ if ($slotData[$s] >= 0)
{
- $tmp = substr ($slotInfo[$s], 0, 1);
- foreach (str_split (substr ($slotInfo[$s],1)) as $letter)
- $tmp .= '<br>' . $letter;
- $slotInfo[$s] = $tmp;
+ for ($lr = 0; $lr < $slotRows[$s]; $lr++)
+ {
+ for ($lc = 0; $lc < $slotCols[$s]; $lc++)
+ {
+ $skip = ($lr * $cols) + $lc;
+ if ($skip > 0)
+ $slotData[$s + $skip] = -1;
+ }
+ }
+ echo '<td';
+ if ($slotRows[$s] > 1)
+ {
+ echo " rowspan=$slotRows[$s]";
+ }
+ if ($slotCols[$s] > 1)
+ {
+ echo " colspan=$slotCols[$s]";
+ }
+ echo " class='state_T";
+ if ($slotData[$s] == $hl_obj_id)
+ echo 'h';
+ echo "'>${slotTitle[$s]}";
+ if ($layout == 'V')
+ {
+ $tmp = substr ($slotInfo[$s], 0, 1);
+ foreach (str_split (substr ($slotInfo[$s],1)) as $letter)
+ $tmp .= '<br>' . $letter;
+ $slotInfo[$s] = $tmp;
+ }
+ echo mkA ($slotInfo[$s], 'object', $slotData[$s]);
+ echo '</div></td>';
}
- echo mkA ($slotInfo[$s], 'object', $slotData[$s]);
- echo '</div></td>';
}
else
echo "<td class='state_F'><div title=\"Free slot\"> </div></td>";
| ||||
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2013-07-05 10:48 | MWilkinson | New Issue | |
| 2013-07-05 10:48 | MWilkinson | Status | new => assigned |
| 2013-07-05 10:48 | MWilkinson | Assigned To | => adoom42 |
| 2013-07-05 10:48 | MWilkinson | File Added: bladelayout-0.20.5.patch | |
| 2013-07-21 01:07 | adoom42 | Status | assigned => closed |
| 2013-07-21 01:07 | adoom42 | Resolution | open => fixed |
| 2013-07-21 01:07 | adoom42 | Fixed in Version | => 0.20.6 |
| 2013-07-21 01:07 | adoom42 | Target Version | => 0.20.6 |