--- /usr/share/zabbix/hostgroups.php.orig 2013-08-21 15:59:26.000000000 +0200 +++ /usr/share/zabbix/hostgroups.php 2013-10-14 12:15:23.000000000 +0200 @@ -324,7 +324,7 @@ 'selectTemplates' => array('hostid', 'name', 'status'), 'output' => API_OUTPUT_EXTEND, 'nopermissions' => 1, - 'limitSelects' => $config['max_in_table'] + 1 + 'limitSelects' => $config['search_limit'] + 1 ); $data['groups'] = API::HostGroup()->get($options); order_result($data['groups'], $sortfield, $sortorder); --- /usr/share/zabbix/include/views/configuration.hostgroups.list.php.orig 2013-08-21 15:59:24.000000000 +0200 +++ /usr/share/zabbix/include/views/configuration.hostgroups.list.php 2013-10-14 11:00:04.000000000 +0200 @@ -44,29 +44,34 @@ $hostgroupForm->setName('hostgroupForm'); // create table +$expred_ico_item = new CImg('images/general/plus.png'); +$expred_ico_item->setAttribute('id', 'expRedMemIco'); +$expred_ico_url = 'javascript:expandReduceCol(".expRedMem", "'._('[expand]').'", "'._('[reduce]').'", "#expRedMemIco");'; +$expred_ico = new CLink($expred_ico_item, $expred_ico_url, null, null, false); + $hostgroupTable = new CTableInfo(_('No host groups defined.')); $hostgroupTable->setHeader(array( new CCheckBox('all_groups', null, "checkAll('".$hostgroupForm->getName()."', 'all_groups', 'groups');"), make_sorting_header(_('Name'), 'name'), ' # ', - _('Members') + array(_('Members'), SPACE, $expred_ico) )); foreach ($this->data['groups'] as $group) { $tpl_count = 0; $host_count = 0; - $hosts_output = array(); + $hosts_output = $hosts_output_short = array(); $i = 0; foreach ($group['templates'] as $template) { $i++; - if ($i > $this->data['config']['max_in_table']) { - $hosts_output[] = '...'; - $hosts_output[] = '//empty for array_pop'; - break; + $url = 'templates.php?form=update&templateid='.$template['hostid'].'&groupid='.$group['groupid']; + + if ($i <= $this->data['config']['max_in_table']) { + $hosts_output_short[] = new CLink($template['name'], $url, 'unknown'); + $hosts_output_short[] = ', '; } - $url = 'templates.php?form=update&templateid='.$template['hostid'].'&groupid='.$group['groupid']; $hosts_output[] = new CLink($template['name'], $url, 'unknown'); $hosts_output[] = ', '; } @@ -74,16 +79,11 @@ array_pop($hosts_output); $hosts_output[] = BR(); $hosts_output[] = BR(); + $hosts_output_short = $hosts_output; } foreach ($group['hosts'] as $host) { $i++; - if ($i > $this->data['config']['max_in_table']) { - $hosts_output[] = '...'; - $hosts_output[] = '//empty for array_pop'; - break; - } - switch ($host['status']) { case HOST_STATUS_NOT_MONITORED: $style = 'on'; @@ -94,11 +94,27 @@ $url = 'hosts.php?form=update&hostid='.$host['hostid'].'&groupid='.$group['groupid']; break; } + + if ($i <= $this->data['config']['max_in_table']) { + $hosts_output_short[] = new CLink($host['name'], $url, $style); + $hosts_output_short[] = ', '; + } + $hosts_output[] = new CLink($host['name'], $url, $style); $hosts_output[] = ', '; } + array_pop($hosts_output_short); array_pop($hosts_output); + if ($hosts_output_short != $hosts_output) { + $hosts_output_short[] = ', ...'; + $expred_lnk_url = 'javascript:expandReduceCol(".expRedMem' . $group['groupid'].'", "'._('[expand]').'", "'._('[reduce]').'");'; + $expred_lnk = new CLink(_('[expand]'), $expred_lnk_url, 'expRedMem'.$group['groupid'].' expRedMem', null, false); + $hosts_output_short_class = "expRedMem${group['groupid']}_short expRedMem_short visible"; + $hosts_output_long_class = "expRedMem${group['groupid']}_long expRedMem_long hidden"; + $hosts_output = array(new CDiv($hosts_output_short, $hosts_output_short_class), new CDiv($hosts_output, $hosts_output_long_class), $expred_lnk); + } + $hostCount = $this->data['groupCounts'][$group['groupid']]['hosts']; $templateCount = $this->data['groupCounts'][$group['groupid']]['templates'];