Skip to content

Commit 3460fcc

Browse files
committed
[Discover] Allow user to generate a report after saving a modified saved search (#63623)
* Fix missing reset of initial state when saving saved searches * Fix invalid setting of docTitle * Add functional test
1 parent 5498a23 commit 3460fcc

File tree

2 files changed

+25
-2
lines changed
  • src/legacy/core_plugins/kibana/public/discover/np_ready/angular
  • x-pack/test/reporting/functional

2 files changed

+25
-2
lines changed

src/legacy/core_plugins/kibana/public/discover/np_ready/angular/discover.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ const {
5757
core,
5858
chrome,
5959
data,
60-
docTitle,
6160
history,
6261
indexPatterns,
6362
filterManager,
@@ -214,6 +213,7 @@ function discoverController(
214213
isAppStateDirty,
215214
kbnUrlStateStorage,
216215
getPreviousAppState,
216+
resetInitialAppState,
217217
} = getState({
218218
defaultAppState: getStateDefaults(),
219219
storeInSessionStorage: config.get('state:storeInSessionStorage'),
@@ -373,6 +373,8 @@ function discoverController(
373373
// If the save wasn't successful, put the original values back.
374374
if (!response.id || response.error) {
375375
savedSearch.title = currentTitle;
376+
} else {
377+
resetInitialAppState();
376378
}
377379
return response;
378380
});
@@ -758,7 +760,7 @@ function discoverController(
758760
} else {
759761
// Update defaults so that "reload saved query" functions correctly
760762
setAppState(getStateDefaults());
761-
docTitle.change(savedSearch.lastSavedTitle);
763+
chrome.docTitle.change(savedSearch.lastSavedTitle);
762764
}
763765
}
764766
});

x-pack/test/reporting/functional/reporting.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export default function({ getService, getPageObjects }) {
1414
const esArchiver = getService('esArchiver');
1515
const browser = getService('browser');
1616
const log = getService('log');
17+
const filterBar = getService('filterBar');
1718
const PageObjects = getPageObjects([
1819
'reporting',
1920
'common',
@@ -123,7 +124,27 @@ export default function({ getService, getPageObjects }) {
123124
expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be(null);
124125
});
125126

127+
it('becomes available/not available when a saved search is created, changed and saved again', async () => {
128+
// create new search, csv export is not available
129+
await PageObjects.discover.clickNewSearchButton();
130+
await PageObjects.reporting.openCsvReportingPanel();
131+
expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be('true');
132+
// save search, csv export is available
133+
await PageObjects.discover.saveSearch('my search - expectEnabledGenerateReportButton 2');
134+
await PageObjects.reporting.openCsvReportingPanel();
135+
expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be(null);
136+
// add filter, csv export is not available
137+
await filterBar.addFilter('currency', 'is', 'EUR');
138+
await PageObjects.reporting.openCsvReportingPanel();
139+
expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be('true');
140+
// save search again, csv export is available
141+
await PageObjects.discover.saveSearch('my search - expectEnabledGenerateReportButton 2');
142+
await PageObjects.reporting.openCsvReportingPanel();
143+
expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be(null);
144+
});
145+
126146
it('generates a report with data', async () => {
147+
await PageObjects.discover.clickNewSearchButton();
127148
await PageObjects.reporting.setTimepickerInDataRange();
128149
await PageObjects.discover.saveSearch('my search - with data - expectReportCanBeCreated');
129150
await PageObjects.reporting.openCsvReportingPanel();

0 commit comments

Comments
 (0)