r4188 update: UI: ability to clear object ports list at one blow
[racktables] / inc / navigation.php
index 2ded6c8..57fccea 100644 (file)
@@ -12,6 +12,13 @@ $ophandler = array();
 $tabhandler = array();
 $delayauth = array();
 
+$indexlayout = array
+(
+       array ('rackspace', 'depot', 'ipv4space', 'ipv6space'),
+       array ('files', 'reports', 'ipv4slb', '8021q'),
+       array ('config', 'objectlog', 'virtual'),
+);
+
 $page['index']['title'] = 'Main page';
 $page['index']['handler'] = 'renderIndex';
 
@@ -23,9 +30,9 @@ $tab['rackspace']['history'] = 'History';
 $tabhandler['rackspace']['default'] = 'renderRackspace';
 $tabhandler['rackspace']['edit'] = 'renderRackspaceRowEditor';
 $tabhandler['rackspace']['history'] = 'renderRackspaceHistory';
-$ophandler['rackspace']['edit']['addRow'] = 'addRow';
-$ophandler['rackspace']['edit']['updateRow'] = 'updateRow';
-$ophandler['rackspace']['edit']['delete'] = 'deleteRow';
+$ophandler['rackspace']['edit']['addRow'] = 'tableHandler';
+$ophandler['rackspace']['edit']['delete'] = 'tableHandler';
+$ophandler['rackspace']['edit']['updateRow'] = 'tableHandler';
 
 $page['depot']['parent'] = 'index';
 $page['depot']['title'] = 'Objects';
@@ -76,82 +83,119 @@ $ophandler['rack']['files']['unlinkFile'] = 'unlinkFile';
 
 $page['object']['bypass'] = 'object_id';
 $page['object']['bypass_type'] = 'uint';
+$page['object']['bypass_tabs'] = array ('hl_port_id');
 $page['object']['parent'] = 'depot';
 $tab['object']['default'] = 'View';
 $tab['object']['edit'] = 'Properties';
+$tab['object']['log'] = 'Log';
 $tab['object']['rackspace'] = 'Rackspace';
 $tab['object']['ports'] = 'Ports';
 $tab['object']['ipv4'] = 'IPv4';
+$tab['object']['ipv6'] = 'IPv6';
 $tab['object']['nat4'] = 'NATv4';
 $tab['object']['livevlans'] = 'Live VLANs';
+$tab['object']['liveports'] = 'Live ports';
+$tab['object']['livecdp'] = 'Live CDP';
+$tab['object']['livelldp'] = 'Live LLDP';
+$tab['object']['livehndp'] = 'Live HNDP';
 $tab['object']['snmpportfinder'] = 'SNMP sync';
 $tab['object']['editrspvs'] = 'RS pools';
 $tab['object']['lvsconfig'] = 'keepalived.conf';
 $tab['object']['autoports'] = 'AutoPorts';
 $tab['object']['tags'] = 'Tags';
 $tab['object']['files'] = 'Files';
-$tab['object']['vlanconfig'] = 'VLAN config';
-$tab['object']['vlanports'] = '[802.1Q]';
+$tab['object']['8021qorder'] = '802.1Q order';
+$tab['object']['8021qports'] = '802.1Q ports';
+$tab['object']['8021qsync'] = '802.1Q sync';
 $tabhandler['object']['default'] = 'renderRackObject';
 $tabhandler['object']['edit'] = 'renderEditObjectForm';
+$tabhandler['object']['log'] = 'renderObjectLogEditor';
 $tabhandler['object']['rackspace'] = 'renderRackSpaceForObject';
 $tabhandler['object']['ports'] = 'renderPortsForObject';
 $tabhandler['object']['ipv4'] = 'renderIPv4ForObject';
+$tabhandler['object']['ipv6'] = 'renderIPv6ForObject';
 $tabhandler['object']['nat4'] = 'renderNATv4ForObject';
 $tabhandler['object']['livevlans'] = 'renderVLANMembership';
+$tabhandler['object']['liveports'] = 'renderPortsInfo';
+$tabhandler['object']['livecdp'] = 'renderDiscoveredNeighbors';
+$tabhandler['object']['livelldp'] = 'renderDiscoveredNeighbors';
+$tabhandler['object']['livehndp'] = 'renderDiscoveredNeighbors';
 $tabhandler['object']['snmpportfinder'] = 'renderSNMPPortFinder';
 $tabhandler['object']['lvsconfig'] = 'renderLVSConfig';
 $tabhandler['object']['autoports'] = 'renderAutoPortsForm';
 $tabhandler['object']['tags'] = 'renderEntityTags';
 $tabhandler['object']['files'] = 'renderFilesForEntity';
 $tabhandler['object']['editrspvs'] = 'renderObjectSLB';
-$tabhandler['object']['vlanconfig'] = 'renderObjectVLANConfig';
-$tabhandler['object']['vlanports'] = 'renderObjectVLANPorts';
+$tabhandler['object']['8021qorder'] = 'render8021QOrderForm';
+$tabhandler['object']['8021qports'] = 'renderObject8021QPorts';
+$tabhandler['object']['8021qsync'] = 'renderObject8021QSync';
 $trigger['object']['rackspace'] = 'trigger_rackspace';
+$trigger['object']['ports'] = 'trigger_ports';
 $trigger['object']['ipv4'] = 'trigger_ipv4';
+$trigger['object']['ipv6'] = 'trigger_ipv6';
 $trigger['object']['nat4'] = 'trigger_natv4';
 $trigger['object']['livevlans'] = 'trigger_livevlans';
+$trigger['object']['liveports'] = 'trigger_liveports';
+$trigger['object']['livecdp'] = 'trigger_LiveCDP';
+$trigger['object']['livelldp'] = 'trigger_LiveLLDP';
+$trigger['object']['livehndp'] = 'trigger_LiveHNDP';
 $trigger['object']['snmpportfinder'] = 'trigger_snmpportfinder';
 $trigger['object']['editrspvs'] = 'trigger_isloadbalancer';
 $trigger['object']['lvsconfig'] = 'trigger_isloadbalancer';
 $trigger['object']['autoports'] = 'trigger_autoports';
 $trigger['object']['tags'] = 'trigger_tags';
-$trigger['object']['vlanconfig'] = 'trigger_vlanconfig';
-$trigger['object']['vlanports'] = 'trigger_vlanports';
+$trigger['object']['8021qorder'] = 'trigger_object_8021qorder';
+$trigger['object']['8021qports'] = 'trigger_object_8021qports';
+$trigger['object']['8021qsync'] = 'trigger_object_8021qsync';
+$ophandler['object']['edit']['linkEntities'] = 'linkEntities';
+$ophandler['object']['edit']['unlinkEntities'] = 'unlinkEntities';
 $ophandler['object']['rackspace']['updateObjectAllocation'] = 'updateObjectAllocation';
 $ophandler['object']['ports']['addPort'] = 'addPortForObject';
-$ophandler['object']['ports']['delPort'] = 'delPortFromObject';
 $ophandler['object']['ports']['editPort'] = 'editPortForObject';
 $ophandler['object']['ports']['linkPort'] = 'linkPortForObject';
-$ophandler['object']['ports']['unlinkPort'] = 'unlinkPortForObject';
 $ophandler['object']['ports']['addMultiPorts'] = 'addMultiPorts';
+$ophandler['object']['ports']['addBulkPorts'] = 'addBulkPorts';
 $ophandler['object']['ports']['useup'] = 'useupPort';
+$ophandler['object']['ports']['delPort'] = 'tableHandler';
+$ophandler['object']['ports']['deleteAll'] = 'tableHandler';
+$ophandler['object']['ports']['unlinkPort'] = 'tableHandler';
 $ophandler['object']['ipv4']['updIPv4Allocation'] = 'updIPv4Allocation';
 $ophandler['object']['ipv4']['addIPv4Allocation'] = 'addIPv4Allocation';
 $ophandler['object']['ipv4']['delIPv4Allocation'] = 'delIPv4Allocation';
+$ophandler['object']['ipv6']['updIPv6Allocation'] = 'updIPv6Allocation';
+$ophandler['object']['ipv6']['addIPv6Allocation'] = 'addIPv6Allocation';
+$ophandler['object']['ipv6']['delIPv6Allocation'] = 'delIPv6Allocation';
 $ophandler['object']['edit']['clearSticker'] = 'clearSticker';
 $ophandler['object']['edit']['update'] = 'updateObject';
+$ophandler['object']['edit']['resetObject'] = 'resetObject';
+$ophandler['object']['log']['add'] = 'addObjectlog';
+$ophandler['object']['log']['del'] = 'tableHandler';
 $ophandler['object']['nat4']['addNATv4Rule'] = 'addPortForwarding';
 $ophandler['object']['nat4']['delNATv4Rule'] = 'delPortForwarding';
 $ophandler['object']['nat4']['updNATv4Rule'] = 'updPortForwarding';
 $ophandler['object']['livevlans']['setPortVLAN'] = 'setPortVLAN';
+$ophandler['object']['livecdp']['importDPData'] = 'importDPData';
+$ophandler['object']['livelldp']['importDPData'] = 'importDPData';
 $ophandler['object']['autoports']['generate'] = 'generateAutoPorts';
 $ophandler['object']['tags']['saveTags'] = 'saveEntityTags';
 $ophandler['object']['files']['addFile'] = 'addFileToEntity';
 $ophandler['object']['files']['linkFile'] = 'linkFileToEntity';
 $ophandler['object']['files']['unlinkFile'] = 'unlinkFile';
 $ophandler['object']['editrspvs']['addLB'] = 'addLoadBalancer';
-$ophandler['object']['editrspvs']['delLB'] = 'deleteLoadBalancer';
-$ophandler['object']['editrspvs']['updLB'] = 'updateLoadBalancer';
+$ophandler['object']['editrspvs']['delLB'] = 'tableHandler';
+$ophandler['object']['editrspvs']['updLB'] = 'tableHandler';
 $ophandler['object']['lvsconfig']['submitSLBConfig'] = 'submitSLBConfig';
 $ophandler['object']['snmpportfinder']['querySNMPData'] = 'querySNMPData';
-$ophandler['object']['vlanconfig']['bind'] = 'addVLANSwitchBinding';
-$ophandler['object']['vlanconfig']['unbind'] = 'delVLANSwitchBinding';
-$ophandler['object']['vlanports']['setAllowedVLANs'] = 'setAllowedVLANs';
-$ophandler['object']['vlanports']['setNativeVLAN'] = 'setNativeVLAN';
+$ophandler['object']['8021qorder']['add'] = 'add8021QOrder';
+$ophandler['object']['8021qorder']['del'] = 'del8021QOrder';
+$ophandler['object']['8021qports']['save8021QConfig'] = 'save8021QPorts';
+$ophandler['object']['8021qports']['exec8021QRecalc'] = 'process8021QRecalcRequest';
+$ophandler['object']['8021qsync']['exec8021QPull'] = 'process8021QSyncRequest';
+$ophandler['object']['8021qsync']['exec8021QPush'] = 'process8021QSyncRequest';
+$ophandler['object']['8021qsync']['resolve8021QConflicts'] = 'resolve8021QConflicts';
+$delayauth['object']['8021qports']['save8021QConfig'] = TRUE;
 $delayauth['object']['livevlans']['setPortVLAN'] = TRUE;
 
-$page['ipv4space']['title'] = 'IPv4 space';
 $page['ipv4space']['parent'] = 'index';
 $tab['ipv4space']['default'] = 'Browse';
 $tab['ipv4space']['newrange'] = 'Manage';
@@ -160,6 +204,14 @@ $tabhandler['ipv4space']['newrange'] = 'renderIPv4SpaceEditor';
 $ophandler['ipv4space']['newrange']['addIPv4Prefix'] = 'addIPv4Prefix';
 $ophandler['ipv4space']['newrange']['delIPv4Prefix'] = 'delIPv4Prefix';
 
+$page['ipv6space']['parent'] = 'index';
+$tab['ipv6space']['default'] = 'Browse';
+$tab['ipv6space']['newrange'] = 'Manage';
+$tabhandler['ipv6space']['default'] = 'renderIPv6Space';
+$tabhandler['ipv6space']['newrange'] = 'renderIPv6SpaceEditor';
+$ophandler['ipv6space']['newrange']['addIPv6Prefix'] = 'addIPv6Prefix';
+$ophandler['ipv6space']['newrange']['delIPv6Prefix'] = 'delIPv6Prefix';
+
 $page['ipv4net']['parent'] = 'ipv4space';
 $page['ipv4net']['bypass'] = 'id';
 $page['ipv4net']['bypass_type'] = 'uint';
@@ -168,23 +220,46 @@ $tab['ipv4net']['properties'] = 'Properties';
 $tab['ipv4net']['liveptr'] = 'Live PTR';
 $tab['ipv4net']['tags'] = 'Tags';
 $tab['ipv4net']['files'] = 'Files';
-$tab['ipv4net']['vlan'] = 'VLAN';
+$tab['ipv4net']['8021q'] = '802.1Q';
 $tabhandler['ipv4net']['default'] = 'renderIPv4Network';
-$tabhandler['ipv4net']['properties'] = 'renderIPv4NetworkProperties';
+$tabhandler['ipv4net']['properties'] = 'renderIPNetworkProperties';
 $tabhandler['ipv4net']['liveptr'] = 'renderLivePTR';
 $tabhandler['ipv4net']['tags'] = 'renderEntityTags';
 $tabhandler['ipv4net']['files'] = 'renderFilesForEntity';
-$tabhandler['ipv4net']['vlan'] = 'renderIPv4NetworkVLANTab';
+$tabhandler['ipv4net']['8021q'] = 'renderVLANIPLinks';
 $trigger['ipv4net']['tags'] = 'trigger_tags';
-$trigger['ipv4net']['vlan'] = 'trigger_ipv4net_vlanconfig';
-$ophandler['ipv4net']['properties']['editRange'] = 'updIPv4Prefix';
+$trigger['ipv4net']['8021q'] = 'trigger_ipv4net_vlanconfig';
+$ophandler['ipv4net']['properties']['editRange'] = 'tableHandler';
 $ophandler['ipv4net']['liveptr']['importPTRData'] = 'importPTRData';
 $ophandler['ipv4net']['tags']['saveTags'] = 'saveEntityTags';
 $ophandler['ipv4net']['files']['addFile'] = 'addFileToEntity';
 $ophandler['ipv4net']['files']['linkFile'] = 'linkFileToEntity';
 $ophandler['ipv4net']['files']['unlinkFile'] = 'unlinkFile';
-$ophandler['ipv4net']['vlan']['bind'] = 'bindVLANtoIPv4';
-$ophandler['ipv4net']['vlan']['unbind'] = 'unbindVLANfromIPv4';
+$ophandler['ipv4net']['8021q']['bind'] = 'bindVLANtoIPv4';
+$ophandler['ipv4net']['8021q']['unbind'] = 'unbindVLANfromIPv4';
+
+$page['ipv6net']['parent'] = 'ipv6space';
+$page['ipv6net']['bypass'] = 'id';
+$page['ipv6net']['bypass_type'] = 'uint';
+$tab['ipv6net']['default'] = 'Browse';
+$tab['ipv6net']['properties'] = 'Properties';
+$tab['ipv6net']['tags'] = 'Tags';
+$tab['ipv6net']['files'] = 'Files';
+$tab['ipv6net']['8021q'] = '802.1Q';
+$tabhandler['ipv6net']['default'] = 'renderIPv6Network';
+$tabhandler['ipv6net']['properties'] = 'renderIPNetworkProperties';
+$tabhandler['ipv6net']['tags'] = 'renderEntityTags';
+$tabhandler['ipv6net']['files'] = 'renderFilesForEntity';
+$tabhandler['ipv6net']['8021q'] = 'renderVLANIPLinks';
+$trigger['ipv6net']['tags'] = 'trigger_tags';
+$trigger['ipv6net']['8021q'] = 'trigger_ipv6net_vlanconfig';
+$ophandler['ipv6net']['properties']['editRange'] = 'tableHandler';
+$ophandler['ipv6net']['tags']['saveTags'] = 'saveEntityTags';
+$ophandler['ipv6net']['files']['addFile'] = 'addFileToEntity';
+$ophandler['ipv6net']['files']['linkFile'] = 'linkFileToEntity';
+$ophandler['ipv6net']['files']['unlinkFile'] = 'unlinkFile';
+$ophandler['ipv6net']['8021q']['bind'] = 'bindVLANtoIPv6';
+$ophandler['ipv6net']['8021q']['unbind'] = 'unbindVLANfromIPv6';
 
 $page['ipaddress']['parent'] = 'ipv4net';
 $page['ipaddress']['bypass'] = 'ip';
@@ -192,17 +267,35 @@ $page['ipaddress']['bypass_type'] = 'inet4';
 $tab['ipaddress']['default'] = 'Browse';
 $tab['ipaddress']['properties'] = 'Properties';
 $tab['ipaddress']['assignment'] = 'Allocation';
-$tabhandler['ipaddress']['default'] = 'renderIPv4Address';
-$tabhandler['ipaddress']['properties'] = 'renderIPv4AddressProperties';
-$tabhandler['ipaddress']['assignment'] = 'renderIPv4AddressAllocations';
+$tabhandler['ipaddress']['default'] = 'renderIPAddress';
+$tabhandler['ipaddress']['properties'] = 'renderIPAddressProperties';
+$tabhandler['ipaddress']['assignment'] = 'renderIPAddressAllocations';
 $ophandler['ipaddress']['properties']['editAddress'] = 'editAddress';
 $ophandler['ipaddress']['assignment']['delIPv4Allocation'] = 'delIPv4Allocation';
 $ophandler['ipaddress']['assignment']['updIPv4Allocation'] = 'updIPv4Allocation';
 $ophandler['ipaddress']['assignment']['addIPv4Allocation'] = 'addIPv4Allocation';
 
+$page['ipv6address']['parent'] = 'ipv6net';
+$page['ipv6address']['bypass'] = 'ip';
+$page['ipv6address']['bypass_type'] = 'string';
+$tab['ipv6address']['default'] = 'Browse';
+$tab['ipv6address']['properties'] = 'Properties';
+$tab['ipv6address']['assignment'] = 'Allocation';
+$tabhandler['ipv6address']['default'] = 'renderIPAddress';
+$tabhandler['ipv6address']['properties'] = 'renderIPAddressProperties';
+$tabhandler['ipv6address']['assignment'] = 'renderIPAddressAllocations';
+$ophandler['ipv6address']['properties']['editAddress'] = 'editv6Address';
+$ophandler['ipv6address']['assignment']['delIPv6Allocation'] = 'delIPv6Allocation';
+$ophandler['ipv6address']['assignment']['updIPv6Allocation'] = 'updIPv6Allocation';
+$ophandler['ipv6address']['assignment']['addIPv6Allocation'] = 'addIPv6Allocation';
+
 $page['ipv4slb']['title'] = 'IPv4 SLB';
 $page['ipv4slb']['parent'] = 'index';
-$page['ipv4slb']['handler'] = 'renderIPv4SLB';
+$tab['ipv4slb']['default'] = 'Browse';
+$tab['ipv4slb']['defconfig'] = 'Default configs';
+$tabhandler['ipv4slb']['default'] = 'renderIPv4SLB';
+$tabhandler['ipv4slb']['defconfig'] = 'renderSLBDefConfig';
+$ophandler['ipv4slb']['defconfig']['save'] = 'updateSLBDefConfig';
 
 $page['ipv4vslist']['title'] = 'Virtual services';
 $page['ipv4vslist']['parent'] = 'ipv4slb';
@@ -229,8 +322,8 @@ $tabhandler['ipv4vs']['files'] = 'renderFilesForEntity';
 $trigger['ipv4vs']['tags'] = 'trigger_tags';
 $ophandler['ipv4vs']['edit']['updIPv4VS'] = 'updateVService';
 $ophandler['ipv4vs']['editlblist']['addLB'] = 'addLoadBalancer';
-$ophandler['ipv4vs']['editlblist']['delLB'] = 'deleteLoadBalancer';
-$ophandler['ipv4vs']['editlblist']['updLB'] = 'updateLoadBalancer';
+$ophandler['ipv4vs']['editlblist']['delLB'] = 'tableHandler';
+$ophandler['ipv4vs']['editlblist']['updLB'] = 'tableHandler';
 $ophandler['ipv4vs']['tags']['saveTags'] = 'saveEntityTags';
 $ophandler['ipv4vs']['files']['addFile'] = 'addFileToEntity';
 $ophandler['ipv4vs']['files']['linkFile'] = 'linkFileToEntity';
@@ -264,14 +357,14 @@ $tabhandler['ipv4rspool']['editlblist'] = 'renderRSPoolLBForm';
 $tabhandler['ipv4rspool']['rsinservice'] = 'renderRSPoolRSInServiceForm';
 $tabhandler['ipv4rspool']['tags'] = 'renderEntityTags';
 $tabhandler['ipv4rspool']['files'] = 'renderFilesForEntity';
-$ophandler['ipv4rspool']['edit']['updIPv4RSP'] = 'updateRSPool';
+$ophandler['ipv4rspool']['edit']['updIPv4RSP'] = 'tableHandler';
 $ophandler['ipv4rspool']['editrslist']['addRS'] = 'addRealServer';
-$ophandler['ipv4rspool']['editrslist']['delRS'] = 'deleteRealServer';
+$ophandler['ipv4rspool']['editrslist']['delRS'] = 'tableHandler';
 $ophandler['ipv4rspool']['editrslist']['updRS'] = 'updateRealServer';
 $ophandler['ipv4rspool']['editrslist']['addMany'] = 'addRealServers';
 $ophandler['ipv4rspool']['editlblist']['addLB'] = 'addLoadBalancer';
-$ophandler['ipv4rspool']['editlblist']['delLB'] = 'deleteLoadBalancer';
-$ophandler['ipv4rspool']['editlblist']['updLB'] = 'updateLoadBalancer';
+$ophandler['ipv4rspool']['editlblist']['delLB'] = 'tableHandler';
+$ophandler['ipv4rspool']['editlblist']['updLB'] = 'tableHandler';
 $ophandler['ipv4rspool']['rsinservice']['upd'] = 'updateRSInService';
 $ophandler['ipv4rspool']['tags']['saveTags'] = 'saveEntityTags';
 $ophandler['ipv4rspool']['files']['addFile'] = 'addFileToEntity';
@@ -286,7 +379,7 @@ $page['lbs']['title'] = 'Load balancers';
 $page['lbs']['parent'] = 'ipv4slb';
 $page['lbs']['handler'] = 'renderLBList';
 
-$page['search']['handler'] = 'renderSearchResults';
+$page['search']['handler'] = 'searchHandler';
 $page['search']['parent'] = 'index';
 $page['search']['bypass'] = 'q';
 
@@ -325,14 +418,23 @@ $tabhandler['perms']['default'] = 'renderRackCodeViewer';
 $tabhandler['perms']['edit'] = 'renderRackCodeEditor';
 $ophandler['perms']['edit']['saveRackCode'] = 'saveRackCode';
 
+$page['parentmap']['title'] = 'Object container compatibility';
+$page['parentmap']['parent'] = 'config';
+$tab['parentmap']['default'] = 'View';
+$tab['parentmap']['edit'] = 'Edit';
+$tabhandler['parentmap']['default'] = 'renderObjectParentCompatViewer';
+$tabhandler['parentmap']['edit'] = 'renderObjectParentCompatEditor';
+$ophandler['parentmap']['edit']['add'] = 'tableHandler';
+$ophandler['parentmap']['edit']['del'] = 'tableHandler';
+
 $page['portmap']['title'] = 'Port compatibility';
 $page['portmap']['parent'] = 'config';
 $tab['portmap']['default'] = 'View';
-$tab['portmap']['edit'] = '[Edit]';
+$tab['portmap']['edit'] = 'Edit';
 $tabhandler['portmap']['default'] = 'renderPortOIFCompatViewer';
 $tabhandler['portmap']['edit'] = 'renderPortOIFCompatEditor';
-$ophandler['portmap']['edit']['add'] = 'addPortOIFCompat';
-$ophandler['portmap']['edit']['del'] = 'delPortOIFCompat';
+$ophandler['portmap']['edit']['add'] = 'tableHandler';
+$ophandler['portmap']['edit']['del'] = 'tableHandler';
 
 $page['portifcompat']['title'] = 'Enabled port types';
 $page['portifcompat']['parent'] = 'config';
@@ -341,7 +443,7 @@ $tab['portifcompat']['edit'] = 'Edit';
 $tabhandler['portifcompat']['default'] = 'renderPortIFCompat';
 $tabhandler['portifcompat']['edit'] = 'renderPortIFCompatEditor';
 $ophandler['portifcompat']['edit']['add'] = 'addPortInterfaceCompat';
-$ophandler['portifcompat']['edit']['del'] = 'delPortInterfaceCompat';
+$ophandler['portifcompat']['edit']['del'] = 'tableHandler';
 $ophandler['portifcompat']['edit']['addPack'] = 'addPortInterfaceCompatPack';
 $ophandler['portifcompat']['edit']['delPack'] = 'delPortInterfaceCompatPack';
 
@@ -353,11 +455,11 @@ $tab['attrs']['editmap'] = 'Edit map';
 $tabhandler['attrs']['default'] = 'renderAttributes';
 $tabhandler['attrs']['editattrs'] = 'renderEditAttributesForm';
 $tabhandler['attrs']['editmap'] = 'renderEditAttrMapForm';
-$ophandler['attrs']['editattrs']['add'] = 'createAttribute';
-$ophandler['attrs']['editattrs']['upd'] = 'changeAttribute';
-$ophandler['attrs']['editattrs']['del'] = 'deleteAttribute';
+$ophandler['attrs']['editattrs']['add'] = 'tableHandler';
+$ophandler['attrs']['editattrs']['del'] = 'tableHandler';
+$ophandler['attrs']['editattrs']['upd'] = 'tableHandler';
 $ophandler['attrs']['editmap']['add'] = 'supplementAttrMap';
-$ophandler['attrs']['editmap']['del'] = 'reduceAttrMap';
+$ophandler['attrs']['editmap']['del'] = 'tableHandler';
 
 $page['dict']['title'] = 'Dictionary';
 $page['dict']['parent'] = 'config';
@@ -365,9 +467,9 @@ $tab['dict']['default'] = 'View';
 $tab['dict']['chapters'] = 'Manage chapters';
 $tabhandler['dict']['default'] = 'renderDictionary';
 $tabhandler['dict']['chapters'] = 'renderChaptersEditor';
+$ophandler['dict']['chapters']['add'] = 'tableHandler';
 $ophandler['dict']['chapters']['del'] = 'delChapter';
 $ophandler['dict']['chapters']['upd'] = 'updateChapter';
-$ophandler['dict']['chapters']['add'] = 'addChapter';
 
 $page['chapter']['parent'] = 'dict';
 $page['chapter']['bypass'] = 'chapter_no';
@@ -376,9 +478,9 @@ $tab['chapter']['default'] = 'View';
 $tab['chapter']['edit'] = 'Edit';
 $tabhandler['chapter']['default'] = 'renderChapter';
 $tabhandler['chapter']['edit'] = 'renderChapterEditor';
-$ophandler['chapter']['edit']['del'] = 'reduceDictionary';
+$ophandler['chapter']['edit']['add'] = 'tableHandler';
+$ophandler['chapter']['edit']['del'] = 'tableHandler';
 $ophandler['chapter']['edit']['upd'] = 'updateDictionary';
-$ophandler['chapter']['edit']['add'] = 'supplementDictionary';
 
 $page['ui']['title'] = 'User interface';
 $page['ui']['parent'] = 'config';
@@ -397,20 +499,18 @@ $tab['tagtree']['default'] = 'View';
 $tab['tagtree']['edit'] = 'Edit';
 $tabhandler['tagtree']['default'] = 'renderTagTree';
 $tabhandler['tagtree']['edit'] = 'renderTagTreeEditor';
-$ophandler['tagtree']['edit']['destroyTag'] = 'destroyTag';
-$ophandler['tagtree']['edit']['createTag'] = 'createTag';
-$ophandler['tagtree']['edit']['updateTag'] = 'updateTag';
+$ophandler['tagtree']['edit']['createTag'] = 'tableHandler';
+$ophandler['tagtree']['edit']['destroyTag'] = 'tableHandler';
+$ophandler['tagtree']['edit']['updateTag'] = 'tableHandler';
 
 $page['myaccount']['title'] = 'My account';
 $page['myaccount']['parent'] = 'config';
 $tab['myaccount']['default'] = 'Info';
 $tab['myaccount']['mypassword'] = 'Password change';
-$tab['myaccount']['myrealname'] = '[Real name change]';
 $tab['myaccount']['interface'] = 'Interface preferences';
 $trigger['myaccount']['mypassword'] = 'trigger_passwdchange';
 $tabhandler['myaccount']['default'] = 'renderMyAccount';
 $tabhandler['myaccount']['mypassword'] = 'renderMyPasswordEditor';
-$tabhandler['myaccount']['myrealname'] = 'dragon';
 $tabhandler['myaccount']['interface'] = 'renderMyPreferences';
 $ophandler['myaccount']['mypassword']['changeMyPassword'] = 'changeMyPassword';
 $ophandler['myaccount']['interface']['upd'] = 'saveMyPreferences';
@@ -421,13 +521,17 @@ $page['reports']['parent'] = 'index';
 $tab['reports']['default'] = 'System';
 $tab['reports']['rackcode'] = 'RackCode';
 $tab['reports']['ipv4'] = 'IPv4';
+$tab['reports']['ipv6'] = 'IPv6';
 $tab['reports']['ports'] = 'Ports';
+$tab['reports']['8021q'] = '802.1Q';
 $tab['reports']['local'] = getConfigVar ('enterprise');
 $trigger['reports']['local'] = 'trigger_localreports';
 $tabhandler['reports']['default'] = 'renderSystemReports';
 $tabhandler['reports']['rackcode'] = 'renderRackCodeReports';
 $tabhandler['reports']['ipv4'] = 'renderIPv4Reports';
+$tabhandler['reports']['ipv6'] = 'renderIPv6Reports';
 $tabhandler['reports']['ports'] = 'renderPortsReport';
+$tabhandler['reports']['8021q'] = 'render8021QReport';
 $tabhandler['reports']['local'] = 'renderLocalReports';
 
 $page['files']['title'] = 'Files';
@@ -457,35 +561,39 @@ $tabhandler['file']['tags'] = 'renderEntityTags';
 $tabhandler['file']['editText'] = 'renderTextEditor';
 $tabhandler['file']['replaceData'] = 'renderFileReuploader';
 $tabhandler['file']['download'] = 'renderFileDownloader';
-$ophandler['file']['edit']['updateFile'] = 'updateFile';
+$ophandler['file']['edit']['updateFile'] = 'tableHandler';
 $ophandler['file']['tags']['saveTags'] = 'saveEntityTags';
 $ophandler['file']['editText']['updateFileText'] = 'updateFileText';
 $ophandler['file']['replaceData']['replaceFile'] = 'replaceFile';
 
-$page['vlandomainlist']['title'] = 'VLAN domains';
-$page['vlandomainlist']['parent'] = 'index';
-$tab['vlandomainlist']['default'] = 'Summary';
-$tab['vlandomainlist']['edit'] = 'Manage';
-$tabhandler['vlandomainlist']['default'] = 'renderVLANDomainList';
-$tabhandler['vlandomainlist']['edit'] = 'renderVLANDomainListEditor';
-$ophandler['vlandomainlist']['edit']['add'] = 'createVLANDomain';
-$ophandler['vlandomainlist']['edit']['del'] = 'destroyVLANDomain';
-$ophandler['vlandomainlist']['edit']['upd'] = 'updateVLANDomain';
-
-$page['vlandomain']['parent'] = 'vlandomainlist';
+$page['8021q']['title'] = '802.1Q';
+$page['8021q']['parent'] = 'index';
+$tab['8021q']['default'] = 'Status';
+$tab['8021q']['vdlist'] = 'Manage domains';
+$tab['8021q']['vstlist'] = 'Manage templates';
+$tabhandler['8021q']['default'] = 'render8021QStatus';
+$tabhandler['8021q']['vdlist'] = 'renderVLANDomainListEditor';
+$tabhandler['8021q']['vstlist'] = 'renderVSTListEditor';
+$ophandler['8021q']['vdlist']['add'] = 'createVLANDomain';
+$ophandler['8021q']['vdlist']['del'] = 'destroyVLANDomain';
+$ophandler['8021q']['vdlist']['upd'] = 'tableHandler';
+$ophandler['8021q']['vstlist']['add'] = 'addVLANSwitchTemplate';
+$ophandler['8021q']['vstlist']['del'] = 'delVLANSwitchTemplate';
+$ophandler['8021q']['vstlist']['upd'] = 'tableHandler';
+
+$page['vlandomain']['parent'] = '8021q';
 $page['vlandomain']['bypass'] = 'vdom_id';
 $page['vlandomain']['bypass_type'] = 'uint';
 $tab['vlandomain']['default'] = 'View';
 $tab['vlandomain']['vlanlist'] = 'VLAN list';
-$tab['vlandomain']['switches'] = 'Bindings';
-$tab['vlandomain']['edit'] = '[Domain properties]';
-$tab['vlandomain']['syncvlans'] = '[Sync]';
+$tab['vlandomain']['8021qorder'] = '802.1Q orders';
+$trigger['vlandomain']['8021qorder'] = 'trigger_8021q_configured';
 $tabhandler['vlandomain']['default'] = 'renderVLANDomain';
-$tabhandler['vlandomain']['switches'] = 'renderVLANDomainSwitches';
+$tabhandler['vlandomain']['8021qorder'] = 'render8021QOrderForm';
 $tabhandler['vlandomain']['vlanlist'] = 'renderVLANDomainVLANList';
-$ophandler['vlandomain']['switches']['bind'] = 'addVLANSwitchBinding';
-$ophandler['vlandomain']['switches']['unbind'] = 'delVLANSwitchBinding';
-$ophandler['vlandomain']['vlanlist']['add'] = 'addVLANDescription';
+$ophandler['vlandomain']['8021qorder']['add'] = 'add8021QOrder';
+$ophandler['vlandomain']['8021qorder']['del'] = 'del8021QOrder';
+$ophandler['vlandomain']['vlanlist']['add'] = 'tableHandler';
 $ophandler['vlandomain']['vlanlist']['del'] = 'delVLANDescription';
 $ophandler['vlandomain']['vlanlist']['upd'] = 'updVLANDescription';
 
@@ -494,9 +602,49 @@ $page['vlan']['bypass'] = 'vlan_ck';
 $page['vlan']['bypass_type'] = 'string';
 $tab['vlan']['default'] = 'View';
 $tab['vlan']['ipv4'] = 'IPv4';
+$tab['vlan']['ipv6'] = 'IPv6';
+$trigger['vlan']['ipv4'] = 'trigger_vlan_ipv4net';
+$trigger['vlan']['ipv6'] = 'trigger_vlan_ipv6net';
 $tabhandler['vlan']['default'] = 'renderVLANInfo';
-$tabhandler['vlan']['ipv4'] = 'renderVLANIPv4';
+$tabhandler['vlan']['ipv4'] = 'renderVLANIPLinks';
+$tabhandler['vlan']['ipv6'] = 'renderVLANIPLinks';
 $ophandler['vlan']['ipv4']['bind'] = 'bindVLANtoIPv4';
 $ophandler['vlan']['ipv4']['unbind'] = 'unbindVLANfromIPv4';
+$ophandler['vlan']['ipv6']['bind'] = 'bindVLANtoIPv6';
+$ophandler['vlan']['ipv6']['unbind'] = 'unbindVLANfromIPv6';
+
+$page['vst']['parent'] = '8021q';
+$page['vst']['bypass'] = 'vst_id';
+$page['vst']['bypass_type'] = 'uint';
+$tab['vst']['default'] = 'View';
+$tab['vst']['editrules'] = 'Edit';
+$tab['vst']['8021qorder'] = '802.1Q orders';
+$trigger['vst']['editrules'] = 'trigger_vst_editrules';
+$trigger['vst']['8021qorder'] = 'trigger_8021q_configured';
+$tabhandler['vst']['default'] = 'renderVST';
+$tabhandler['vst']['editrules'] = 'renderVSTRulesEditor';
+$tabhandler['vst']['8021qorder'] = 'render8021QOrderForm';
+$ophandler['vst']['editrules']['clone'] = 'cloneVST';
+$ophandler['vst']['editrules']['upd'] = 'updVSTRule';
+$ophandler['vst']['8021qorder']['add'] = 'add8021QOrder';
+$ophandler['vst']['8021qorder']['del'] = 'del8021QOrder';
+
+$page['dqueue']['parent'] = '8021q';
+$page['dqueue']['bypass'] = 'dqcode';
+$page['dqueue']['bypass_type'] = 'string';
+$tab['dqueue']['default'] = 'View';
+$tabhandler['dqueue']['default'] = 'renderDeployQueue';
+
+$page['objectlog']['title'] = 'Log records';
+$page['objectlog']['parent'] = 'index';
+$tab['objectlog']['default'] = 'View';
+#$tab['objectlog']['add'] = 'Add'; // FIXME: finish, then enable
+$tabhandler['objectlog']['default'] = 'allObjectLogs';
+#$tabhandler['objectlog']['add'] = 'renderGlobalLogEditor';
+
+$page['virtual']['title'] = 'Virtual Resources';
+$page['virtual']['parent'] = 'index';
+$tab['virtual']['default'] = 'Summary';
+$tabhandler['virtual']['default'] = 'renderVirtualResourcesSummary';
 
 ?>