Skip to content

Commit 2aacc0f

Browse files
Continue with: Disable button when the filter returns no results
1 parent 2590556 commit 2aacc0f

File tree

8 files changed

+25
-12
lines changed

8 files changed

+25
-12
lines changed

application/controllers/CommentsController.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,11 @@ public function indexAction()
8383
$this->addControl($limitControl);
8484
$this->addControl($viewModeSwitcher);
8585
$this->addControl($searchBar);
86-
$continueWith = $this->createContinueWith(Links::commentsDetails(), $searchBar);
8786

8887
$results = $comments->execute();
8988

89+
$continueWith = $this->createContinueWith(Links::commentsDetails(), $searchBar, $results->hasResult());
90+
9091
$this->addContent(
9192
(new ObjectList($results))
9293
->setViewMode($viewModeSwitcher->getViewMode())

application/controllers/DowntimesController.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,11 @@ public function indexAction()
8989
$this->addControl($limitControl);
9090
$this->addControl($viewModeSwitcher);
9191
$this->addControl($searchBar);
92-
$continueWith = $this->createContinueWith(Links::downtimesDetails(), $searchBar);
9392

9493
$results = $downtimes->execute();
9594

95+
$continueWith = $this->createContinueWith(Links::downtimesDetails(), $searchBar, $results->hasResult());
96+
9697
$this->addContent(
9798
(new ObjectList($results))
9899
->setViewMode($viewModeSwitcher->getViewMode())

application/controllers/HostController.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,8 @@ public function servicesAction(): Generator
286286

287287
yield $this->export($services);
288288

289+
$services = $services->execute();
290+
289291
$serviceList = (new ObjectList($services))
290292
->setViewMode($viewModeSwitcher->getViewMode())
291293
->setEmptyStateMessage($paginationControl->getEmptyStateMessage());
@@ -297,7 +299,8 @@ public function servicesAction(): Generator
297299
$this->addControl($searchBar);
298300
$continueWith = $this->createContinueWith(
299301
Links::servicesDetails()->setFilter(Filter::equal('host.name', $this->host->name)),
300-
$searchBar
302+
$searchBar,
303+
$services->hasResult()
301304
);
302305

303306
$this->addContent($serviceList);

application/controllers/HostgroupController.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,9 @@ public function indexAction(): Generator
102102

103103
yield $this->export($hosts);
104104

105-
$hostList = (new ObjectList($hosts))
105+
$results = $hosts->execute();
106+
107+
$hostList = (new ObjectList($results))
106108
->setViewMode($viewModeSwitcher->getViewMode())
107109
->setEmptyStateMessage($paginationControl->getEmptyStateMessage());
108110

@@ -122,7 +124,8 @@ public function indexAction(): Generator
122124
$continueWith = $this->createContinueWith(
123125
Links::hostsDetails()
124126
->setFilter(Filter::equal('hostgroup.name', $hostgroup->name)),
125-
$searchBar
127+
$searchBar,
128+
$results->hasResult()
126129
);
127130

128131
$this->addContent($hostList);

application/controllers/HostsController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,10 @@ public function indexAction()
9797
$this->addControl($limitControl);
9898
$this->addControl($viewModeSwitcher);
9999
$this->addControl($searchBar);
100-
$continueWith = $this->createContinueWith(Links::hostsDetails(), $searchBar);
101100

102101
$results = $hosts->execute();
103102

103+
$continueWith = $this->createContinueWith(Links::hostsDetails(), $searchBar, $results->hasResult());
104104
if ($viewModeSwitcher->getViewMode() === 'tabular') {
105105
$hostList = (new HostItemTable($results, HostItemTable::applyColumnMetaData($hosts, $columns)))
106106
->setSort($sortControl->getSort());

application/controllers/ServicegroupController.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,9 @@ public function indexAction(): Generator
109109

110110
yield $this->export($services);
111111

112-
$serviceList = (new ObjectList($services))
112+
$results = $services->execute();
113+
114+
$serviceList = (new ObjectList($results))
113115
->setViewMode($viewModeSwitcher->getViewMode())
114116
->setEmptyStateMessage($paginationControl->getEmptyStateMessage());
115117

@@ -129,7 +131,8 @@ public function indexAction(): Generator
129131
$continueWith = $this->createContinueWith(
130132
Links::servicesDetails()
131133
->setFilter(Filter::equal('servicegroup.name', $servicegroup->name)),
132-
$searchBar
134+
$searchBar,
135+
$results->hasResult()
133136
);
134137

135138
$this->addContent($serviceList);

application/controllers/ServicesController.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,11 @@ public function indexAction()
108108
$this->addControl($limitControl);
109109
$this->addControl($viewModeSwitcher);
110110
$this->addControl($searchBar);
111-
$continueWith = $this->createContinueWith(Links::servicesDetails(), $searchBar);
112111

113112
$results = $services->execute();
114113

114+
$continueWith = $this->createContinueWith(Links::servicesDetails(), $searchBar, $results->hasResult());
115+
115116
if ($viewModeSwitcher->getViewMode() === 'tabular') {
116117
$serviceList = (new ServiceItemTable($results, ServiceItemTable::applyColumnMetaData($services, $columns)))
117118
->setSort($sortControl->getSort());
@@ -279,7 +280,6 @@ public function gridAction()
279280
$this->addControl($problemToggle);
280281
$this->addControl($sortControl);
281282
$this->addControl($searchBar);
282-
$continueWith = $this->createContinueWith(Links::servicesDetails(), $searchBar);
283283

284284
$pivotFilter = $problemToggle->isChecked() ?
285285
Filter::equal('service.state.is_problem', 'y') : null;
@@ -316,6 +316,7 @@ public function gridAction()
316316
$this->view->pivotData = $pivotData;
317317
$this->view->pivotHeader = $pivotHeader;
318318

319+
$continueWith = $this->createContinueWith(Links::servicesDetails(), $searchBar, ! empty($pivotData));
319320
/** Preserve filter and params in view links (the `BaseFilter` implementation for view scripts -.-) */
320321
$this->view->baseUrl = Url::fromRequest()
321322
->onlyWith([

library/Icingadb/Common/SearchControls.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,13 @@ public function createSearchBar(Query $query, ...$params): SearchBar
5151
*
5252
* @param Url $detailsUrl
5353
* @param SearchBar $searchBar
54+
* @param bool $hasResults Whether the current query has results
5455
*
5556
* @return ContinueWith
5657
*/
57-
public function createContinueWith(Url $detailsUrl, SearchBar $searchBar): ContinueWith
58+
public function createContinueWith(Url $detailsUrl, SearchBar $searchBar, bool $hasResults): ContinueWith
5859
{
59-
$continueWith = new ContinueWith($detailsUrl, [$searchBar, 'getFilter']);
60+
$continueWith = new ContinueWith($detailsUrl, [$searchBar, 'getFilter'], $hasResults);
6061
$continueWith->setTitle(t('Show bulk processing actions for all filtered results'));
6162
$continueWith->setBaseTarget('_next');
6263
$continueWith->getAttributes()

0 commit comments

Comments
 (0)