r4069 new feature: UI: live switchport info (port config, link status, learned mac...
authorAlexey Andriyanov <alan@al-an.info>
Sat, 25 Dec 2010 22:07:25 +0000 (22:07 +0000)
committerAlexey Andriyanov <alan@al-an.info>
Sat, 25 Dec 2010 22:07:25 +0000 (22:07 +0000)
commit65e557ddf3e7a16f46ffa56dc8d55652544f1f02
treee23bbdfdbb12a1652259cdf46f0bacd880f888d7
parent3b3c5e21a6010a8307426b4536509294534bbfdb
r4069 new feature: UI: live switchport info (port config, link status, learned mac list) showed inline on any object tab
update: selective including of JS and CSS files. No more unneeded js code loaded.

gateways/deviceconfig/nxos4.connector: added two more commands: getportstatus and getmaclist
gateways/deviceconfig/ios12.connector: idem
gateways/deviceconfig/vrp53.connector: idem
gateways/deviceconfig/vrp55.connector: idem

pi.css: moved into css/ dir, removed duplicated body attributes, many new styles added for popup interface
added jquery.contextmenu plugin: css/jquery.contextmenu.css and js/jquery.contextmenu.js files
index.php: buffering of output added to call printPageHeaders after page generation for adding nesessary JS/CSS into page header
added new pix: ajax-loader.gif, checkbox_yes.png, link-disabled.png, link-up.png, link-down.png, 1x1t.gif (transparent pixel)
inc/navigation.php: new object tab 'Live ports' added

inc/interface.php: changed mainly for reacting to js/css include policy change
 renderRack: add autogenerated css styles for rack atoms on-demand (addAtomCSS call), added common class atom to TDs
 renderMolecule: idem
 renderAtomGrid: idem
 renderGridForm: include js libs on-demand (function renders some JS code)
 renderRackSpaceForObject: idem
 renderLivePTR: idem
 renderCellFilterPortlet: idem
 renderTextEditor: idem
 renderRackObject: prepare portlist to add popup menu if needed, include js libs on-demand (function renders some JS code)
 renderPortsForObject: idem
 renderObject8021QPorts: idem
 renderDiscoveredNeighbors: idem
 renderObject8021QSync: idem, also preventive init port config popups (cause we already have info from switch)
 renderPortsInfo: new function, renders new 'Live ports' tab
 renderIPv4SpaceRecords: reflect renaming of getAutoScrollScript
 renderIPv6SpaceRecords: idem
 RenderIPv4Network: idem
 RenderIPv6Network: idem
 renderIPv4SpaceEditor: JS prefix syntax validator reformatted to reflect new JS include policy
 renderIPv6SpaceEditor: idem
 renderRackCodeEditor: JS reformatted reformatted to reflect new JS include policy
 formatPortLink: ability to pass <a>-class
 getAutoScrollScript: renamed to addAutoScrollScript, cause it does no renders anything now, only adds link to JS file
 switchportInfoJS: new function checking permissions and other requirements for portinfo popup menu, and including nesessary JS/CSS
 addAtomCSS: new function to generate rackatom css runtime based on config variable (legacy feature, BTW)

inc/init.php: $pageheaders cleaned up from JS and CSS, now they are included on-demand
inc/functions.php:
 ios12ShortenIfName: VRP formats iface names in short manner (GE, XGE) in some pages, concerning it
 printPageHeaders: adding links to remembered during page rendering JS/CSS files or inline blocks
 getColumnCoordinates: new util function (used in ios12 int status gw) to parse fixed-column-length-formatted tables
 addJS: new function to include JS files/block on demand
 addCSS: idem
 isEthernetPort: new function to check if popup menu is appiable for the specified port

inc/ajax-interface.php: new file like interface.php, but small enough to be included in ajax.php instead of huge interface.php
 formatPortLinkHints: prepares HTML code for inline and popup parts of popup interface
 formatPortMacHints: idem
 formatPortConfigHints: idem

inc/gateways.php: ability to fetch mac list, link status and port configs from ios12, vrp, nxos.
 ios12ScanTopLevel: 802.1q config parsing functions now saving every seen line to ['config'] subkey (for port config fetching)
 ios12PickSwitchportCommand: idem
 vrp53ScanTopLevel: idem
 vrp53PickInterfaceSubcommand: idem
 vrp55Read8021QConfig: idem
 nxos4ScanTopLevel: idem
 nxos4PickSwitchportCommand: idem
 ciscoReadInterfaceStatus: function for parsing 'show int status' IOS and NXOS command output
 vrpReadInterfaceStatus: idem for VRP 5.3/5.5
 maclist_sort: function for sorting mac list by VLAN id
 ios12ReadMacList: function for parsing 'show mac address-table dynamic' IOS command output
 nxos4ReadMacList: idem for NXOS
 vrp53ReadMacList: idem for VRP 5.3
 vrp55ReadMacList: idem for VRP 5.5/5.7

inc/triggers.php: new trigger for 'Live ports' tab
ajax.php: 3 new ops for port info data queries. Calling functions from ajax-interface.php and encoding their output in JSON
js/jquery.thumbhover.js: JS library to show stickable popups on hover. Rewritten by me from unknown source

js/jquery.contextmenu.js, css/jquery.contextmenu.css: third-party library for displaying popup menus

js/racktables.js: new util function to parse query string and extract GET param value from it
js/jquery-1.3.1.min.js was replaced by the new version: js/jquery-1.4.4.min.js
js/portinfo.js: JS code implementing popup switchport info logic

Hooray!!!
29 files changed:
ChangeLog
README
ajax.php
css/jquery.contextmenu.css [new file with mode: 0644]
css/pi.css [moved from pi.css with 83% similarity]
gateways/deviceconfig/ios12.connector
gateways/deviceconfig/nxos4.connector
gateways/deviceconfig/vrp53.connector
gateways/deviceconfig/vrp55.connector
inc/ajax-interface.php [new file with mode: 0644]
inc/functions.php
inc/gateways.php
inc/init.php
inc/interface.php
inc/navigation.php
inc/triggers.php
index.php
js/jquery-1.3.1.min.js [deleted file]
js/jquery-1.4.4.min.js [new file with mode: 0644]
js/jquery.contextmenu.js [new file with mode: 0644]
js/jquery.thumbhover.js [new file with mode: 0644]
js/portinfo.js [new file with mode: 0644]
js/racktables.js
pix/1x1t.gif [new file with mode: 0644]
pix/ajax-loader.gif [new file with mode: 0644]
pix/checkbox_yes.png [new file with mode: 0644]
pix/link-disabled.png [new file with mode: 0644]
pix/link-down.png [new file with mode: 0644]
pix/link-up.png [new file with mode: 0644]