create new tag
view all tags


The RackPlannerPlugin handles the tag %RACKPLANNER% and renders a rack overview (HTML table) with devices (computer, router, switches, ...).

Syntax Rules

Devices are defined within a TWiki table. Following columns are supported:

Device Rack Starting Unit Form Factor Connected to: Owner Color/Image Notes
device name(s) (separated by ' / ' or ' # ') rack name a starting unit (a number between 1 and units) a form factor (units, e.g. 4U, 2, 1U, ...) device(s) is/are connected to ... (comma separated list of other devices, ports ...); every 'connected to' item is displayed as a icon (see connectedtoicon, e.g. MOVED TO...) with the text as tooltip; if you use links the icons are also links; the device owner(s) is/are displayed as tooltip of the device name colors or a background image (a URL or shortcut, e.g. @sun - see attachments) for the table data cell notes are displayed as a icon (notesicon e.g. REFACTOR) with the note as tooltip; if you use a link the icon is also a link
must must must must optional optional optional optional
Server1 RackS21 10 2U port31 server admins blue,white not in use
Patchfield1 / Switch2 RackS21 40 1U switch3 / router4 network admins / network admins blue,white / green,white 3 ports free / 8 ports free
SunServer2 RackS21 15 4U port12 sun server admins blue,white,!@sun  

You can use following %EDITTABLE% tag (EditTablePlugin must be installed) to simplify some things (ALERT! it must be one line):

header="|*Device*|*Rack*|*Starting Unit*|*Form Factor*|*Connected to:*|*Owner*|*Color/Image*|*Notes*|"}%
This %EDITTABLE% tag is an example. Feel free to modify the attributes (format and header). Hint: Put a %TABLE{initsort="3" initdirection="down"}% tag before the %EDITTABLE% tag to sort the table like the rack (modify initdirection to "up" if your first unit is at the top of the rack (dir="topdown")).


  • The device order in the table is not relevant (except there's a conflict) but the column order is relevant (because the table header will be ignored).
  • If more than one device uses the same unit the conflict will be displayed with a icon (see conflicticon attribute, e.g. PICK). The tooltip of the icon contains the device names.
  • If you have more than one device in the same unit you have to put them into a single table row and separate device names, 'connected to', owner, colors, notes with a ' / ' or a ' # ' (a whitespace before and after the separator is required).


Usage: %RACKPLANNER{attribute1="value" attribute2="value" ... }%
Example: %RACKPLANNER{racks="rack1, rack2"}%

Attribute Description Example/Default
autotopic set it on and every rack name is automatically used as source topic for the device definition (racks attribute is required and the value is attached to the topic attribute value); useful if you define your racks and devices on topics with the same names as the racks autotopic="off"
dir sets the direction of the units: topdown - unit 1 is at the top of the rack; bottomup - unit 1 is at the bottom of the rack; leftright - units are shown horizontal with unit 1 at the left; rightleft - units are shown horizontal with unit 1 at the right dir="bottomup"
clicktooltip if enabled JavaScript tooltips are only shown with a mouse click to the table cell instead of 'mouse over' (related: enablejstooltips, clicktooltiptext) clicktooltip="off"
enablejstooltips enables/disables JavaScript tooltips enablejstooltips="1"
racks a comma separated list of rack names to show; if omitted all racks found on topics (see topic attribute) are shown racks="rack1,rack2"
steps unit steps to display (useful if you use only every steps unit of a rack) steps="1"
topic a comma separated list of source topics topic="%TOPIC%"
units units to show units="46"
conflicticon if a conflict exists this icon will be displayed conflicticon="%S%"
connectedtoicon if a 'connected to' entry exists this icon will be displayed with the entry as tooltip connectedtoicon="%M%"
notesicon if a 'notes' entry exists this icon will be displayed with the note as tooltip notesicon="%P%"
ownericon only used for JavaScript tooltips ownericon="%ICON{persons}%"
clicktooltiptext tooltip text if clicktooltip is enabled clicktooltiptext="click for information"
columnwidth column width columnwidth="50px"
devicebgcolor default device background color devicebgcolor="#f0f0f0"
devicefgcolor default device foreground color devicefgcolor="#000000"
displayconnectedto if enabled the 'connected to' text entry will be displayed in the table cell instead of the 'connected to' icon displayconnectedto="off"
displaynotes if enabled the 'notes' entry will be displayed in the table cell instead of the 'notes' icon displaynotes="off"
displayowner if enabled the 'owner' entry will be displayed in the table cell displayowner="off"
displaystats if enabled the statistics will be displayed displaystats="on"
displayunitcolumn if enabled the unit column will be displayed (related: unitcolumnpos, unitcolumnformat) displayunitcolumn="1"
emptybgcolor default empty unit background color emptybgcolor="#f0f0f0"
emptyfgcolor default empty unit foreground color emptyfgcolor="#000000"
emptytext text for empty units (replacements: %U - unit number; %R - rack name) emptytext="empty"
fontsize font size of the text (in px, pt, em, ... or xx-small, x-small, small, medium, large,x-large, xx-large, smaller, larger); don't forget to reduce the iconsize if you reduce the fontsize fontsize="small"
iconsize icon size iconsize="16"
maxheight defines the maximum height auf the visible rack table undefined / maxheight="680px"
name entry of the first cell (header of the unit row) name="U"
rackstatformat rack statistics format (replacements: %EU - empty units; %LEB - largest empty block; %OU - occupied units) rackstatformat="Empty: %EUU %BR%Largest Empty Block: %LEBU %BR%Occupied: %OUU"
statformat statistics format (replacements: %R - rack count; %EU - empty units; %LEB - largest empty block; %OU - occupied units; %U - # units) statformat="#Racks: %R, #Units: %U, Occupied: %OUU, Empty: %EUU, Largest Empty Block: %LEBU"
textdir defines text direction; allowed values: topdown, leftright (ALERT! only supported for dir="leftright" and dir="rightleft" yet) textdir="leftright"
tooltipbgcolor tooltip background color (default: color from definition table) tooltipbgcolor=""
toolitpfgcolor tooltip foreground color (default: color from definition table) tooltipfgcolor=""
tooltipfixleft tooltip position fix (skin dependent) tooltipfixleft=-163
tooltipfixtop tooltip position fix (skin dependent) tooltipfixtop=0
tooltipformat tooltip format (replacements: %DEVICE%: device name; %FORMFACTOR%: form factor; %RACK%: rack name; %SUNIT%: starting unit; %EUNIT%: ending unit; %OWNER%: onwer; %NOTES%: notes; %OWNERICON%: owner icon; %NOTESICON%: notes icon; %CONNECTEDTOICON%: 'connected to' icon; %CLOSEBUTTON%: a close button) tooltipformat="<b><span title="Device name"> %DEVICE%: </span></b> <span title="Form factor">%FORMFACTOR%</span> (<span title="Start-End units">%SUNIT%-%EUNIT%</span>, <span title="Rack name">%RACK%</span>)<div title="Owner">%OWNERICON% %OWNER% </div><div title="Connected to">%CONNECTEDTOICON% %CONNECTEDTO% </div><div title="Notes">%NOTESICON% %NOTES% </div><div style="font-size:xx-small;text-align:right;"><span style="background-color:red;" title="Close tooltip">%CLOSEBUTTON%</span></div>"
unitcolumnbgcolor background color of the unit column unitcolumnbgcolor="white"
unitcolumnfgcolor foreground color of the unit column unitcolumnfgcolor="black"
unitcolumnformat format of the unit column (replacement: %U - unit) unitcolumnformat="%U"
unitcolumnpos positions of the unit column: left, right, both (left and right), all (both and between racks) unitcolumnpos="left"


  • You can use TextFormattingRules for some attribute values: conflicticon, connectedtoicon, emptytext, name, notesicon
  • Every attribute of %RACKPLANNER% can also be used as plugin setting. You only have to use capital letters.


Urack1 rack2
server02ConnectedToOtherTopicConnectedToAnotherTopicAnd to a E100some notes  5: conflict with server06 server07 
4: conflict with server03 
server01some notes to server1 
server04P123goes to ..   
a very very very very long textwith linked notes 
Empty: 41U
Largest Empty Block: 41U
Occupied: 5U
Empty: 38U
Largest Empty Block: 27U
Occupied: 8U
#Racks: 2, #Units: 92, Occupied: 13U, Empty: 79U, Largest Empty Block: 41U

Device Rack Starting Unit Form Factor Connected to: Owner Color/Image Notes
server01 rack1 1 1U   me   some notes to server1
server02 rack1 5 4U ConnectedToOtherTopic, ConnectedToAnotherTopic,And to a E100   @sun some notes
server03 rack1 4 1U       conflict with server02
server04 rack2 40 5U P123 someone else green,white goes to ..
a very very very very long text rack2 1 1U     green with linked notes
server06 rack1 5 1U        
server07 rack1 5 3U       conflict with server02 and server06
ServerName rack2 30 2U ConnectedToOtherTopic      

Plugin Settings

Plugin settings are stored as preferences variables. To reference a plugin setting write %<plugin>_<setting>%, i.e. %EMPTYPLUGIN_SHORTDESCRIPTION%

  • One line description, is shown in the TextFormattingRules topic:
    • Set SHORTDESCRIPTION = Render a rack overview (e.g. of 19'' computer racks) with HTML tables

  • Debug plugin: (See output in data/debug.txt)
    • Set DEBUG = 0

  • Rack units (default: 46):
    • Set UNITS = 46

  • Device background/foreground colors:
    • Set DEVICEBGCOLOR = #f0f0f0
    • Set DEVICEFGCOLOR = #000000

  • Empty unit text:
    • # Set EMPTYTEXT = empty

  • Font and icon sizes:
    • Set FONTSIZE = small
    • Set ICONSIZE = 12px

  • Fix tooltip positions (skin dependent):
    • # Set TOOLTIPFIXLEFT = -163
    • # Set TOOLTIPFIXTOP = 0

  • Note: Every attribute of %RACKPLANNER% can also be used as plugin setting. You only have to use capital letters.

Plugin Installation Instructions

Note: You do not need to install anything on the browser to use this plugin. The following instructions are for the administrator who installs the plugin on the TWiki server.

  • Download the ZIP file from the Plugin web (see below)
  • Unzip RackPlannerPlugin.zip in your twiki installation directory. Content:
    File: Description:
    data/TWiki/RackPlannerPlugin.txt Plugin topic
    data/TWiki/VarRACKPLANNER.txt Documentation
    lib/TWiki/Plugins/RackPlannerPlugin.pm Plugin Perl module
    lib/TWiki/Plugins/RackPlannerPlugin/RackPlanner.pm Plugin Perl library
    pub/TWiki/RackPlannerPlugin/rackplannertooltips.js JavaScript module
    ==pub/TWiki/RackPlannerPlugin/*.png some base icons for devices

  • Configure the Plugin:
    • TWiki 4.0 and up: Run the configure script to enable the Plugin
    • Change the Plugin settings as needed
  • Test if the installation was successful:
    • see Examples section

Plugin Info

Plugin Author: TWiki:Main.DanielRohde
Copyright: © 2006, TWiki:Main.DanielRohde
License: GPL (GNU General Public License)
Plugin Version: V1.007 (19 Aug 2010)
Change History:  
V1.007 (19 Aug 2010) TWiki:Main.DanielRohde: allowed ';' instead of ',' to separate colors/images; added overflow:auto style; added maxheight parameter; fixed TWiki 5 problems
V1.006 (30 Aug 2007) TWiki:Main.DanielRohde: fixed minor tooltip foreground/background color bug; added device icon shortcut feature; added some base device icons;
V1.005 (5 Jun 2007) TWiki:Main.DanielRohde: fixed links in 'connected to' or 'owner' field bug; added new attribute (clicktooltip...); added documentation
V1.004 (20 Apr 2007) TWiki:Main.DanielRohde: fixed replacement in tooltipformat bug; improved tooltipformat; improved HTML rendering performance; added and fixed documenation;
V1.003 (6 Mar 2007) TWiki:Main.DanielRohde: fixed displayowner/displaynotes bug reported by TWiki:Main.PatrickTuite; added horizontal rendering feature requested by TWiki:Main.OlofStockhaus; added new attributes (tooltip..., columnwidth, textdir); fixed HTML validation bug;
V1.002 (26 Oct 2006): TWiki:Main.DanielRohde: allowed multiple entries in a single unit; fixed rendering bug reported by TWiki:Main.SteveWray; fixed link color bug reported by TWiki:Main.SteveWray
V1.001 (7 Aug 2006): TWiki:Main.DanielRohde: improved some features (added statistics); added attributes (rackstatformat, displayunitcolumn, unitcolumn*); renamed attribute statformat; fixed documentation; fixed tooltip bug; fixed conflict bug;
V1.000 (4 Aug 2006): TWiki:Main.DanielRohde: Initial version
TWiki Dependency: $TWiki::Plugins::VERSION 1.021
CPAN Dependencies: none
Other Dependencies: none
Perl Version: 5.005
Benchmarks: GoodStyle 97%, FormattedSearch 99%, RackPlannerPlugin 84%
Plugin Home: http://TWiki.org/cgi-bin/view/Plugins/RackPlannerPlugin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/RackPlannerPluginDev
Appraisal: http://TWiki.org/cgi-bin/view/Plugins/RackPlannerPluginAppraisal

Related Topics: TWikiPlugins, DeveloperDocumentationCategory, AdminDocumentationCategory, TWikiPreferences -- TWiki:Main.DanielRohde - 31 Aug 2006

Physics WebpagesRHUL WebpagesCampus Connect • Royal Holloway, University of London, Egham, Surrey TW20 0EX; Tel/Fax +44 (0)1784 434455/437520

Topic revision: r0 - 05 Jun 2007 - TWikiContributor

This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 1999-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding RHUL Physics Department TWiki? Send feedback
Note: Please contribute updates to this topic on TWiki.org at TWiki:TWiki.RackPlannerPlugin.