getServerInfo($_REQUEST['logoutServer']); $misc->setServerInfo(null, null, $_REQUEST['logoutServer']); unset($_SESSION['sharedUsername'], $_SESSION['sharedPassword']); doDefault(sprintf($lang['strlogoutmsg'], $server_info['desc'])); $_reload_browser = true; } function doDefault($msg = '') { global $conf, $misc; global $lang; $misc->printTabs('root','servers'); $misc->printMsg($msg); $group = isset($_GET['group']) ? $_GET['group'] : false; $servers = $misc->getServers(true, $group); function svPre(&$rowdata, $actions) { $actions['logout']['disable'] = empty($rowdata->fields['username']); return $actions; } $columns = array( 'server' => array( 'title' => $lang['strserver'], 'field' => field('desc'), 'url' => "redirect.php?subject=server&", 'vars' => array('server' => 'id'), ), 'host' => array( 'title' => $lang['strhost'], 'field' => field('host'), ), 'port' => array( 'title' => $lang['strport'], 'field' => field('port'), ), 'username' => array( 'title' => $lang['strusername'], 'field' => field('username'), ), 'actions' => array( 'title' => $lang['stractions'], ), ); $actions = array( 'logout' => array( 'title' => $lang['strlogout'], 'url' => "servers.php?action=logout&", 'vars' => array('logoutServer' => 'id'), ), ); if (($group !== false) and isset($conf['srv_groups'][$group])) { printf("

{$lang['strgroupservers']}

", htmlentities($conf['srv_groups'][$group]['desc'])); $actions['logout']['url'] .= "group=" . htmlentities($group) . "&"; } $misc->printTable($servers, $columns, $actions, $lang['strnoobjects'], 'svPre'); if (isset($conf['srv_groups'])) { echo "
\n"; } } function doTree($group = false) { global $misc; $servers = $misc->getServers(true, $group); $reqvars = $misc->getRequestVars('server'); $attrs = array( 'text' => field('desc'), // Show different icons for logged in/out 'icon' => ifempty(field('username'), 'DisconnectedServer', 'Server'), 'toolTip'=> field('id'), 'action' => url('redirect.php', $reqvars, array('server' => field('id')) ), // Only create a branch url if the user has // logged into the server. 'branch' => ifempty(field('username'), false, url('all_db.php', $reqvars, array( 'action' => 'tree', 'server' => field('id') ) ) ), ); $misc->printTreeXML($servers, $attrs); exit; } 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; } if ($action == 'tree') { if (isset($_GET['group'])) doTree($_GET['group']); else doTree(false); } if ($action == 'groupstree') doGroupsTree(); $misc->printHeader($lang['strservers']); $misc->printBody(); $misc->printTrail('root'); switch ($action) { case 'logout': doLogout(); break; default: doDefault($msg); break; } $misc->printFooter(); ?>