function get_node_path($nodeid, $result = '') { global $ZBX_NODES; $node_data = isset($ZBX_NODES[$nodeid]) ? $ZBX_NODES[$nodeid] : false; if ($node_data) { if ($node_data['masterid']) { $result = get_node_path($node_data['masterid'], $result); } $result .= $node_data['name'] . ' ⇒ '; } return $result; }
function get_node_path($nodeid, $result = '/') { if ($node_data = get_node_by_nodeid($nodeid)) { if ($node_data['masterid']) { $result = get_node_path($node_data['masterid'], $result); } $result .= $node_data['name'] . '/'; } return $result; }
} $frmNode->addRow(S_TIME_ZONE, $cmbTimeZone); $frmNode->addRow(S_IP, new CTextBox('ip', $ip, 15)); $frmNode->addRow(S_PORT, new CNumericBox('port', $port, 5)); $frmNode->addRow(S_DO_NOT_KEEP_HISTORY_OLDER_THAN, new CNumericBox('slave_history', $slave_history, 6)); $frmNode->addRow(S_DO_NOT_KEEP_TRENDS_OLDER_THAN, new CNumericBox('slave_trends', $slave_trends, 6)); $frmNode->addItemToBottomRow(new CButton('save', S_SAVE)); if (isset($_REQUEST['nodeid']) && $node_type != ZBX_NODE_LOCAL) { $frmNode->addItemToBottomRow(SPACE); $frmNode->addItemToBottomRow(new CButtonDelete(S_DELETE_SELECTED_NODE_Q, url_param('form') . url_param('nodeid'))); } $frmNode->addItemToBottomRow(SPACE); $frmNode->addItemToBottomRow(new CButtonCancel()); $nodes_wdgt->addItem($frmNode); } else { $nodes_wdgt->addHeader(S_NODES_BIG); $nodes_wdgt->addItem(BR()); $table = new CTableInfo(S_NO_NODES_DEFINED); $table->setHeader(array(make_sorting_header(S_ID, 'n.nodeid'), make_sorting_header(S_NAME, 'n.name'), make_sorting_header(S_TIME_ZONE, 'n.timezone'), make_sorting_header(S_IP . ':' . S_PORT, 'n.ip'))); $sql = 'SELECT n.* ' . ' FROM nodes n' . order_by('n.nodeid,n.name,n.timezone,n.ip', 'n.masterid'); $db_nodes = DBselect($sql); while ($node = DBfetch($db_nodes)) { $table->addRow(array($node['nodeid'], array(get_node_path($node['masterid']), new CLink($node['nodetype'] ? new CSpan($node['name'], 'bold') : $node['name'], '?&form=update&nodeid=' . $node['nodeid'])), new CSpan('GMT' . sprintf('%+03d:00', $node['timezone']), $node['nodetype'] ? 'bold' : null), new CSpan($node['ip'] . ':' . $node['port'], $node['nodetype'] ? 'bold' : null))); } $nodes_wdgt->addItem($table); } } else { $nodes_wdgt->addItem(new CTable(new CCol(S_NOT_DM_SETUP, 'center'))); } $nodes_wdgt->show(); include_once 'include/page_footer.php';
** (at your option) any later version. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program; if not, write to the Free Software ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. **/ $nodeWidget = new CWidget(); $configComboBox = new CComboBox('config', 'nodes.php', 'javascript: redirect(this.options[this.selectedIndex].value);'); $configComboBox->addItem('nodes.php', _('Nodes')); $configComboBox->addItem('proxies.php', _('Proxies')); $nodeTable = new CTableInfo(_('Your setup is not configured for distributed monitoring.')); $createForm = null; if (ZBX_DISTRIBUTED) { $nodeWidget->addHeader(_('Nodes')); $createForm = new CForm(); $createForm->cleanItems(); $createForm->addItem(new CSubmit('form', _('Create node'))); $nodeTable = new CTableInfo(); $nodeTable->setHeader(array(make_sorting_header(_('ID'), 'n.nodeid'), make_sorting_header(_('Name'), 'n.name'), _('Type'), make_sorting_header(_('IP') . ' : ' . _('Port'), 'n.ip'))); while ($node = DBfetch($this->data['nodes'])) { $nodeTable->addRow(array($node['nodeid'], array(get_node_path($node['masterid']), new CLink($node['name'], '?form=update&nodeid=' . $node['nodeid'])), node_type2str($node['nodetype']), $node['ip'] . ' : ' . $node['port'])); } } $nodeWidget->addPageHeader(_('CONFIGURATION OF NODES'), array($configComboBox, $createForm)); $nodeWidget->addItem($nodeTable); return $nodeWidget;
$cmbTimeZone = new CComboBox('timezone', $timezone); for ($i = -12; $i <= 13; $i++) { $cmbTimeZone->addItem($i, 'GMT' . sprintf('%+03d:00', $i)); } $frmNode->addRow(S_TIME_ZONE, $cmbTimeZone); $frmNode->addRow(S_IP, new CTextBox('ip', $ip, 15)); $frmNode->addRow(S_PORT, new CNumericBox('port', $port, 5)); $frmNode->addRow(S_DO_NOT_KEEP_HISTORY_OLDER_THAN, new CNumericBox('slave_history', $slave_history, 6)); $frmNode->addRow(S_DO_NOT_KEEP_TRENDS_OLDER_THAN, new CNumericBox('slave_trends', $slave_trends, 6)); $frmNode->addItemToBottomRow(new CButton('save', S_SAVE)); if (isset($_REQUEST['nodeid']) && $node_type != ZBX_NODE_LOCAL) { $frmNode->addItemToBottomRow(SPACE); $frmNode->addItemToBottomRow(new CButtonDelete('Delete selected node?', url_param('form') . url_param('nodeid'))); } $frmNode->addItemToBottomRow(SPACE); $frmNode->addItemToBottomRow(new CButtonCancel(url_param('config'))); $frmNode->Show(); } else { show_table_header(S_NODES_BIG); $table = new CTableInfo(S_NO_NODES_DEFINED); $table->SetHeader(array(make_sorting_link(S_ID, 'n.nodeid'), make_sorting_link(S_NAME, 'n.name'), make_sorting_link(S_TYPE, 'n.nodetype'), make_sorting_link(S_TIME_ZONE, 'n.timezone'), make_sorting_link(S_IP . ':' . S_PORT, 'n.ip'))); $sql = 'SELECT n.* ' . ' FROM nodes n' . ' WHERE ' . DBcondition('n.nodeid', $available_nodes) . order_by('n.nodeid,n.name,n.nodetype,n.timezone,n.ip', 'n.masterid'); $db_nodes = DBselect($sql); while ($row = DBfetch($db_nodes)) { $node_type = detect_node_type($row); $node_type_name = node_type2str($node_type); $table->AddRow(array($row['nodeid'], array(get_node_path($row['masterid']), new CLink($row['nodetype'] ? new CSpan($row['name'], 'bold') : $row['name'], '?&form=update&nodeid=' . $row['nodeid'], 'action')), $node_type == ZBX_NODE_LOCAL ? new CSpan($node_type_name, 'bold') : $node_type_name, new CSpan('GMT' . sprintf('%+03d:00', $row['timezone']), $row['nodetype'] ? 'bold' : null), new CSpan($row['ip'] . ':' . $row['port'], $row['nodetype'] ? 'bold' : null))); } $table->Show(); } include_once 'include/page_footer.php';