Пример #1
0
function getProgressBar($percentage = 0, $theme = '', $inline = FALSE)
{
    $done = (int) ($percentage * 100);
    if (!$inline) {
        $src = "?module=progressbar&done={$done}" . (empty($theme) ? '' : "&theme={$theme}");
    } else {
        $bk_request = $_REQUEST;
        $_REQUEST['theme'] = $theme;
        $src = 'data:image/png;base64,' . chunk_split(base64_encode(getOutputOf('renderProgressBarImage', $done)));
        $_REQUEST = $bk_request;
        header('Content-type: text/html');
    }
    $ret = "<img width=100 height=10 border=0 title='{$done}%' src='{$src}'>";
    return $ret;
}
Пример #2
0
function renderIPNetwork($id)
{
    global $pageno;
    $realm = $pageno;
    // 'ipv4net', 'ipv6net'
    $range = spotEntity($realm, $id);
    loadIPAddrList($range);
    echo "<table border=0 class=objectview cellspacing=0 cellpadding=0>";
    echo "<tr><td colspan=2 align=center><h1>{$range['ip']}/{$range['mask']}</h1><h2>";
    echo htmlspecialchars($range['name'], ENT_QUOTES, 'UTF-8') . "</h2></td></tr>\n";
    echo "<tr><td class=pcleft width='50%'>";
    // render summary portlet
    $summary = array();
    $summary['%% used'] = getRenderedIPNetCapacity($range);
    $summary = getRenderedIPNetBacktrace($range) + $summary;
    if ($realm == 'ipv4net') {
        $summary[] = array('Netmask:', ip4_format($range['mask_bin']));
        $summary[] = array('Netmask:', "0x" . strtoupper(implode('', unpack('H*', $range['mask_bin']))));
        $summary['Wildcard bits'] = ip4_format(~$range['mask_bin']);
    }
    $reuse_domain = considerConfiguredConstraint($range, '8021Q_MULTILINK_LISTSRC');
    $domainclass = array();
    foreach (array_count_values(reduceSubarraysToColumn($range['8021q'], 'domain_id')) as $domain_id => $vlan_count) {
        $domainclass[$domain_id] = $vlan_count == 1 ? '' : ($reuse_domain ? '{trwarning}' : '{trerror}');
    }
    foreach ($range['8021q'] as $item) {
        $summary[] = array($domainclass[$item['domain_id']] . 'VLAN:', formatVLANAsHyperlink(getVLANInfo($item['domain_id'] . '-' . $item['vlan_id'])));
    }
    if (getConfigVar('EXT_IPV4_VIEW') == 'yes' and count($routers = findRouters($range['addrlist']))) {
        $summary['Routed by'] = '';
        foreach ($routers as $rtr) {
            $summary['Routed by'] .= getOutputOf('renderRouterCell', $rtr['ip_bin'], $rtr['iface'], spotEntity('object', $rtr['id']));
        }
    }
    $summary['tags'] = '';
    renderEntitySummary($range, 'summary', $summary);
    if (strlen($range['comment'])) {
        startPortlet('Comment');
        echo '<div class=commentblock>' . string_insert_hrefs(htmlspecialchars($range['comment'], ENT_QUOTES, 'UTF-8')) . '</div>';
        finishPortlet();
    }
    renderFilesPortlet($realm, $id);
    echo "</td>\n";
    echo "<td class=pcright>";
    startPortlet('details');
    renderIPNetworkAddresses($range);
    finishPortlet();
    echo "</td></tr></table>\n";
}
Пример #3
0
function renderIPNetwork($id)
{
    global $pageno;
    $realm = $pageno;
    // 'ipv4net', 'ipv6net'
    $range = spotEntity($realm, $id);
    loadIPAddrList($range);
    echo "<table border=0 class=objectview cellspacing=0 cellpadding=0>";
    echo "<tr><td colspan=2 align=center><h1>{$range['ip']}/{$range['mask']}</h1><h2>";
    echo htmlspecialchars($range['name'], ENT_QUOTES, 'UTF-8') . "</h2></td></tr>\n";
    echo "<tr><td class=pcleft width='50%'>";
    // render summary portlet
    $summary = array();
    $summary['%% used'] = getRenderedIPNetCapacity($range);
    $summary = array_merge($summary, getRenderedIPNetBacktrace($range));
    if ($realm == 'ipv4net') {
        $summary[] = array('Netmask:', ip4_format($range['mask_bin']));
        $summary[] = array('Netmask:', "0x" . strtoupper(implode('', unpack('H*', $range['mask_bin']))));
        $summary['Wildcard bits'] = ip4_format(~$range['mask_bin']);
    }
    foreach ($range['8021q'] as $item) {
        $vlaninfo = getVLANInfo($item['domain_id'] . '-' . $item['vlan_id']);
        $summary[] = array('VLAN:', '<a href="' . makeHref(array('page' => 'vlan', 'vlan_ck' => $vlaninfo['vlan_ck'])) . '">' . formatVLANName($vlaninfo, 'markup long') . '</a>');
    }
    if (getConfigVar('EXT_IPV4_VIEW') == 'yes' and count($routers = findRouters($range['addrlist']))) {
        $summary['Routed by'] = '';
        foreach ($routers as $rtr) {
            $summary['Routed by'] .= getOutputOf('renderRouterCell', $rtr['ip_bin'], $rtr['iface'], spotEntity('object', $rtr['id']));
        }
    }
    $summary['tags'] = '';
    renderEntitySummary($range, 'summary', $summary);
    if (strlen($range['comment'])) {
        startPortlet('Comment');
        echo '<div class=commentblock>' . string_insert_hrefs(htmlspecialchars($range['comment'], ENT_QUOTES, 'UTF-8')) . '</div>';
        finishPortlet();
    }
    renderFilesPortlet($realm, $id);
    echo "</td>\n";
    echo "<td class=pcright>";
    startPortlet('details');
    renderIPNetworkAddresses($range);
    finishPortlet();
    echo "</td></tr></table>\n";
}
Пример #4
0
function renderPopupHTML()
{
    global $pageno, $tabno;
    header('Content-Type: text/html; charset=UTF-8');
    ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" style="height: 100%;">
<?php 
    assertStringArg('helper');
    $text = '';
    switch ($_REQUEST['helper']) {
        case 'objlist':
            $pageno = 'object';
            $tabno = 'default';
            fixContext();
            assertPermission();
            $text .= getOutputOf('renderPopupObjectSelector');
            break;
        case 'portlist':
            $pageno = 'depot';
            $tabno = 'default';
            fixContext();
            assertPermission();
            $text .= '<div style="background-color: #f0f0f0; border: 1px solid #3c78b5; padding: 10px; height: 100%; text-align: center; margin: 5px;">';
            if (isset($_REQUEST['do_link'])) {
                $text .= getOutputOf('callHook', 'handlePopupPortLink');
            } else {
                $text .= getOutputOf('callHook', 'renderPopupPortSelector');
            }
            $text .= '</div>';
            break;
        case 'inet4list':
            $pageno = 'ipv4space';
            $tabno = 'default';
            fixContext();
            assertPermission();
            $text .= getOutputOf('renderPopupIPv4Selector');
            break;
        default:
            throw new InvalidRequestArgException('helper', $_REQUEST['helper']);
    }
    echo '<head><title>RackTables pop-up</title>';
    printPageHeaders();
    echo '</head>';
    echo '<body style="height: 100%;">' . $text . '</body>';
    ?>
</html>
<?php 
}
function renderSearchNewIP4Range()
{
    global $pTable;
    // prepare $cellfilter
    $cellfilter = getCellFilter();
    if ($cellfilter['is_empty'] || !isset($_REQUEST['cfp'])) {
        if (defined('SPARE_SEARCH_PREDICATE') && isset($pTable[SPARE_SEARCH_PREDICATE])) {
            $_REQUEST['cfp'] = array(SPARE_SEARCH_PREDICATE);
            $cellfilter = getCellFilter();
        }
    }
    $mask = NULL;
    if (!empty($_REQUEST['pref_len'])) {
        $mask = intval($_REQUEST['pref_len']);
    }
    $nets = array();
    foreach (filterCellList(listCells('ipv4net'), $cellfilter['expression']) as $net) {
        if (!isset($mask)) {
            $nets[] = $net;
        } elseif ($net['mask'] <= $mask) {
            $is_aggregate = FALSE;
            foreach ($net['atags'] as $atag) {
                if ($atag['tag'] == '$aggregate') {
                    $is_aggregate = TRUE;
                } elseif (preg_match('/^\\$spare_(\\d+)$/', $atag['tag'], $m) && $mask >= $m[1]) {
                    $nets[] = $net;
                    continue 2;
                }
            }
            if (!$is_aggregate) {
                $nets[] = $net;
            }
        }
    }
    $filter = getOutputOf('renderCellFilterPortlet', $cellfilter, 'ipv4net', $nets);
    echo '<table width="100%"><tr valign=top>';
    echo '<td>';
    startPortlet("Results (" . count($nets) . ")");
    echo '<ul class="spare-nets">';
    foreach ($nets as $net) {
        echo '<li>';
        renderNetCellForAlloc($net, $mask);
        echo '</li>';
    }
    echo '</ul>';
    finishPortlet();
    echo '</td>';
    echo '<td width="33%">';
    echo preg_replace_callback('/(<form[^<>]*>)/', 'generatePrefixLengthInput', $filter);
    echo '</td>';
    echo '</tr></table>';
    addCSS(<<<END
ul.spare-nets {
\tlist-style: none;
\tpadding: 0px;
}
ul.spare-nets li {
\tmargin: 5px 0px;
}

END
, TRUE);
}
Пример #6
0
function linkmgmt_opPortLinkDialog()
{
    //	portlist::var_dump_html($_REQUEST);
    header('Content-Type: text/html; charset=UTF-8');
    ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" style="height: 100%;">
<?php 
    $text = '<div style="background-color: #f0f0f0; border: 1px solid #3c78b5; padding: 10px; text-align: center;
 margin: 5px;">';
    if (permitted(NULL, NULL, "set_link")) {
        if (isset($_REQUEST['do_link'])) {
            $text .= getOutputOf('linkmgmt_oplinkPort');
        } else {
            if (isset($_REQUEST['byname'])) {
                $text .= getOutputOf('linkmgmt_renderPopupPortSelectorbyName');
            } else {
                $text .= getOutputOf('linkmgmt_renderPopupPortSelector');
            }
        }
    } else {
        $text .= "Permission denied!";
    }
    $text .= '</div>';
    echo '<head><title>RackTables pop-up</title>';
    printPageHeaders();
    echo '</head>';
    echo '<body style="height: 100%;">' . $text . '</body>';
    ?>
</html>
<?php 
    exit;
}