function doGroupsTree() { global $misc; $groups = $misc->getServersGroups(); function escape($fields) { global $lang; if ($fields['id'] === 'all') { return $lang['strallservers']; } else { return value(field('desc'), $fields, 'xml'); } } $attrs = array('text' => noEscape(callback('escape')), 'icon' => 'Servers', 'action' => url('servers.php', array('group' => field('id'))), 'branch' => url('servers.php', array('action' => 'tree', 'group' => field('id')))); $misc->printTreeXML($groups, $attrs); exit; }
function doTree() { global $misc, $data, $lang, $slony; $reqvars = $misc->getRequestVars('database'); $tabs = $misc->getNavTabs('database'); $items = $misc->adjustTabsForTree($tabs); $attrs = array('text' => noEscape(field('title')), 'icon' => field('icon'), 'action' => url(field('url'), $reqvars, field('urlvars', array())), 'branch' => url(field('url'), $reqvars, field('urlvars'), array('action' => 'tree'))); $misc->printTreeXML($items, $attrs); exit; }
function doSubTree() { global $misc, $data; $tabs = $misc->getNavTabs('table'); $items = $misc->adjustTabsForTree($tabs); $reqvars = $misc->getRequestVars('table'); $attrs = array('text' => noEscape(field('title')), 'icon' => field('icon'), 'action' => url(field('url'), $reqvars, field('urlvars'), array('table' => $_REQUEST['table'])), 'branch' => ifempty(field('branch'), '', url(field('url'), $reqvars, array('action' => 'tree', 'table' => $_REQUEST['table'])))); $misc->printTreeXML($items, $attrs); exit; }
/** * Generate the somewhat complex Slony tree * @param string $subject The tree node to return */ function doTree($subject) { global $misc, $data, $lang, $slony; $reqvars = $misc->getRequestVars('database'); if (isset($slony)) { $reqvars['slony_cluster'] = $slony->slony_cluster; } // Determine what actual tree we are building switch ($subject) { case 'clusters': // Clusters // Enabled check here is just a hack. if ($slony->isEnabled()) { $tabs = array('cluster' => array('title' => $slony->slony_cluster, 'url' => 'plugin_slony.php', 'urlvars' => array('subject' => 'clusters_top'), 'icon' => 'Cluster')); } else { $tabs = array(); } $items = $misc->adjustTabsForTree($tabs); $attrs = array('text' => noEscape(field('title')), 'icon' => field('icon'), 'action' => url(field('url'), $reqvars, array('action' => 'cluster_properties')), 'branch' => url(field('url'), $reqvars, field('urlvars'), array('action' => 'clusters_top'))); $misc->printTreeXML($items, $attrs); break; case 'clusters_top': // Top level Nodes and Replication sets folders $tabs = array('nodes' => array('title' => $lang['strnodes'], 'url' => 'plugin_slony.php', 'urlvars' => array('subject' => 'nodes'), 'icon' => 'Nodes')); $items = $misc->adjustTabsForTree($tabs); $attrs = array('text' => noEscape(field('title')), 'icon' => field('icon'), 'action' => url(field('url'), $reqvars, field('urlvars', array()), array('action' => 'nodes_properties')), 'branch' => url(field('url'), $reqvars, field('urlvars'), array('action' => 'nodes')), 'nofoot' => true); $misc->printTreeXML($items, $attrs); $tabs = array('sets' => array('title' => $lang['strrepsets'], 'url' => 'plugin_slony.php', 'urlvars' => array('subject' => 'sets'), 'icon' => 'ReplicationSets')); $items = $misc->adjustTabsForTree($tabs); $attrs = array('text' => noEscape(field('title')), 'icon' => field('icon'), 'action' => url(field('url'), $reqvars, field('urlvars', array()), array('action' => 'sets_properties')), 'branch' => url(field('url'), $reqvars, field('urlvars'), array('action' => 'sets')), 'nohead' => true); $misc->printTreeXML($items, $attrs); break; case 'nodes': $nodes = $slony->getNodes(); $attrs = array('text' => field('no_comment'), 'icon' => 'Node', 'action' => url('plugin_slony.php', $reqvars, array('subject' => 'slony_node', 'action' => 'node_properties', 'no_id' => field('no_id'), 'no_name' => field('no_comment'), 'slony_cluster' => $slony->slony_cluster)), 'branch' => url('plugin_slony.php', $reqvars, array('action' => 'nodes_top', 'no_id' => field('no_id')))); $misc->printTreeXML($nodes, $attrs); break; case 'nodes_top': // Nodes paths and listens entries $tabs = array('paths' => array('title' => $lang['strpaths'], 'url' => 'plugin_slony.php', 'urlvars' => array('subject' => 'paths'), 'icon' => 'Paths')); $items = $misc->adjustTabsForTree($tabs); $attrs = array('text' => noEscape(field('title')), 'icon' => field('icon'), 'action' => url(field('url'), $reqvars, field('urlvars', array()), array('action' => 'paths_properties', 'no_id' => $_REQUEST['no_id'])), 'branch' => url(field('url'), $reqvars, field('urlvars'), array('action' => 'paths', 'no_id' => $_REQUEST['no_id'])), 'nofoot' => true); $misc->printTreeXML($items, $attrs); $tabs = array('listens' => array('title' => $lang['strlistens'], 'url' => 'plugin_slony.php', 'urlvars' => array('subject' => 'listens'), 'icon' => 'Listens')); $items = $misc->adjustTabsForTree($tabs); $attrs = array('text' => noEscape(field('title')), 'icon' => field('icon'), 'action' => url(field('url'), $reqvars, field('urlvars', array()), array('action' => 'listens_properties', 'no_id' => $_REQUEST['no_id'])), 'branch' => url(field('url'), $reqvars, field('urlvars'), array('action' => 'listens', 'no_id' => $_REQUEST['no_id'])), 'nohead' => true); $misc->printTreeXML($items, $attrs); break; case 'paths': $tables = $slony->getPaths($_REQUEST['no_id']); $attrs = array('text' => field('no_comment'), 'icon' => 'Path', 'action' => url('plugin_slony.php', $reqvars, array('no_id' => field('pa_client'), 'path_id' => field('no_id'), 'action' => 'path_properties'))); $misc->printTreeXML($tables, $attrs); break; case 'listens': $tables = $slony->getListens($_REQUEST['no_id']); $attrs = array('text' => field('no_comment'), 'icon' => 'Listen', 'action' => url('plugin_slony.php', $reqvars, array('no_id' => field('li_receiver'), 'listen_id' => field('no_id'), 'action' => 'listen_properties'))); $misc->printTreeXML($tables, $attrs); break; case 'sets': $sets = $slony->getReplicationSets(); $attrs = array('text' => field('set_comment'), 'icon' => 'AvailableReplicationSet', 'action' => url('plugin_slony.php', $reqvars, array('action' => 'set_properties', 'set_id' => field('set_id'))), 'branch' => url('plugin_slony.php', $reqvars, array('action' => 'sets_top', 'set_id' => field('set_id')))); $misc->printTreeXML($sets, $attrs); break; case 'sets_top': // Top level Nodes and Replication sets folders $tabs = array('sequences' => array('title' => $lang['strsequences'], 'url' => 'plugin_slony.php', 'urlvars' => array('subject' => 'sequences'), 'icon' => 'Sequences')); $items = $misc->adjustTabsForTree($tabs); $attrs = array('text' => noEscape(field('title')), 'icon' => field('icon'), 'action' => url(field('url'), $reqvars, field('urlvars', array()), array('action' => 'sequences_properties', 'set_id' => $_REQUEST['set_id'])), 'branch' => url(field('url'), $reqvars, field('urlvars'), array('action' => 'sequences', 'set_id' => $_REQUEST['set_id'])), 'nofoot' => true); $misc->printTreeXML($items, $attrs); $tabs = array('tables' => array('title' => $lang['strtables'], 'url' => 'plugin_slony.php', 'urlvars' => array('subject' => 'tables'), 'icon' => 'Tables')); $items = $misc->adjustTabsForTree($tabs); $attrs = array('text' => noEscape(field('title')), 'icon' => field('icon'), 'action' => url(field('url'), $reqvars, field('urlvars', array()), array('action' => 'tables_properties', 'set_id' => $_REQUEST['set_id'])), 'branch' => url(field('url'), $reqvars, field('urlvars'), array('action' => 'tables', 'set_id' => $_REQUEST['set_id'])), 'nohead' => true, 'nofoot' => true); $misc->printTreeXML($items, $attrs); $tabs = array('subscriptions' => array('title' => $lang['strsubscriptions'], 'url' => 'plugin_slony.php', 'urlvars' => array('subject' => 'subscriptions'), 'icon' => 'Subscriptions')); $items = $misc->adjustTabsForTree($tabs); $attrs = array('text' => noEscape(field('title')), 'icon' => field('icon'), 'action' => url(field('url'), $reqvars, field('urlvars', array()), array('action' => 'subscriptions_properties', 'set_id' => $_REQUEST['set_id'])), 'branch' => url(field('url'), $reqvars, field('urlvars'), array('action' => 'subscriptions', 'set_id' => $_REQUEST['set_id'])), 'nohead' => true); $misc->printTreeXML($items, $attrs); break; case 'sequences': $tables = $slony->getSequences($_REQUEST['set_id']); $reqvars = $misc->getRequestVars('sequence'); $attrs = array('text' => field('qualname'), 'icon' => 'Sequence', 'toolTip' => field('seqcomment'), 'action' => url('sequences.php', $reqvars, array('action' => 'properties', 'sequence' => field('seqname'), 'schema' => field('nspname')))); $misc->printTreeXML($tables, $attrs); break; case 'tables': $tables = $slony->getTables($_REQUEST['set_id']); $reqvars = $misc->getRequestVars('table'); $attrs = array('text' => field('qualname'), 'icon' => 'Table', 'toolTip' => field('relcomment'), 'action' => url('redirect.php', $reqvars, array('table' => field('relname'), 'schema' => field('nspname')))); $misc->printTreeXML($tables, $attrs); break; case 'subscriptions': $tables = $slony->getSubscribedNodes($_REQUEST['set_id']); $attrs = array('text' => field('no_comment'), 'icon' => 'AvailableSubscription', 'action' => url('plugin_slony.php', $reqvars, array('set_id' => field('sub_set'), 'no_id' => field('no_id'), 'action' => 'subscription_properties'))); $misc->printTreeXML($tables, $attrs); break; } exit; }
function doSubTree($what) { global $misc, $data, $lang; switch ($what) { case 'FtsCfg': $items = $data->getFtsConfigurations(false); $urlvars = array('action' => 'viewconfig', 'ftscfg' => field('name')); break; case 'FtsDict': $items = $data->getFtsDictionaries(false); $urlvars = array('action' => 'viewdicts'); break; case 'FtsParser': $items = $data->getFtsParsers(false); $urlvars = array('action' => 'viewparsers'); break; default: exit; } $reqvars = $misc->getRequestVars('ftscfg'); $attrs = array('text' => noEscape(field('name')), 'icon' => $what, 'toolTip' => field('comment'), 'action' => url('fulltext.php', $reqvars, $urlvars), 'branch' => ifempty(field('branch'), '', url('fulltext.php', $reqvars, array('action' => 'subtree', 'ftscfg' => field('name'))))); $misc->printTreeXML($items, $attrs); exit; }