From b64e70e12ef48d85756c6639face4259490e8cda Mon Sep 17 00:00:00 2001 From: "Jeffrey T. Palmer" Date: Mon, 4 May 2020 13:08:44 -0400 Subject: [PATCH] Switch to new report after "Save As" (#1302) --- html/gui/js/report_builder/ReportCreator.js | 27 ++++++++++++-------- tests/ui/test/specs/xdmod/reportGenerator.js | 20 +++++++++++++++ 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/html/gui/js/report_builder/ReportCreator.js b/html/gui/js/report_builder/ReportCreator.js index 3b5ab7df86..c20215399b 100644 --- a/html/gui/js/report_builder/ReportCreator.js +++ b/html/gui/js/report_builder/ReportCreator.js @@ -131,6 +131,11 @@ XDMoD.ReportCreator = Ext.extend(Ext.form.FormPanel, { thumbnailChartLayoutPreview; }, this, {single: true}); + // Declare variable before they are used, but cannot be defined here + // due to circular references. + var btnSaveReport; + var btnSaveReportAs; + this.dirtyConfig = function (field, nv, ov) { CCR.xdmod.reporting.dirtyState = true; self.needsSave = true; @@ -501,17 +506,17 @@ XDMoD.ReportCreator = Ext.extend(Ext.form.FormPanel, { if (success) { self.parent.reportsOverview.reportStore.reload(); - if (!generateCopy) { - btnSaveReport.setDisabled(true); - self.needsSave = false; - CCR.xdmod.reporting.dirtyState = false; + btnSaveReport.setDisabled(true); + self.needsSave = false; + CCR.xdmod.reporting.dirtyState = false; - self.setReportID(responseData.report_id); + self.setReportID(responseData.report_id); - // This reload triggers (server-side) - // cache cleanup - flushReloadReportCharts(responseData.report_id); + // This reload triggers (server-side) + // cache cleanup + flushReloadReportCharts(responseData.report_id); + if (!generateCopy) { var action = responseData.phase.slice(0,1).toUpperCase() + responseData.phase.slice(1) + 'd'; @@ -533,6 +538,8 @@ XDMoD.ReportCreator = Ext.extend(Ext.form.FormPanel, { } ); } else { + self.setReportName(reportData.report_name); + XDMoD.TrackEvent( 'Report Generator (Report Editor)', 'Report successfully saved as a copy', @@ -1040,7 +1047,7 @@ XDMoD.ReportCreator = Ext.extend(Ext.form.FormPanel, { p.expandGeneralInfo = false; }); - var btnSaveReport = new Ext.Button({ + btnSaveReport = new Ext.Button({ iconCls: 'btn_save', text: 'Save', disabled: true, @@ -1054,7 +1061,7 @@ XDMoD.ReportCreator = Ext.extend(Ext.form.FormPanel, { } }); - var btnSaveReportAs = new Ext.Button({ + btnSaveReportAs = new Ext.Button({ iconCls: 'btn_save', text: 'Save As', tooltip: 'Create and save a copy of this report.', diff --git a/tests/ui/test/specs/xdmod/reportGenerator.js b/tests/ui/test/specs/xdmod/reportGenerator.js index b06956bd64..faf9582c2f 100644 --- a/tests/ui/test/specs/xdmod/reportGenerator.js +++ b/tests/ui/test/specs/xdmod/reportGenerator.js @@ -630,6 +630,18 @@ describe('Report Generator', function () { it('Click "Save" in "Save As" window', function () { reportGeneratorPage.confirmSaveReportAs(); }); + it('Check copied report name', function () { + expect(reportGeneratorPage.getReportName(), 'Report name is correct').to.be.equal(testReport.name); + }); + it('Edit copied report', function () { + testReport.header = 'Header for copied report'; + reportGeneratorPage.setHeaderText(testReport.header); + testReport.chartsPerPage = testReport.chartsPerPage === 1 ? 2 : 1; + reportGeneratorPage.setNumberOfChartsPerPage(testReport.chartsPerPage); + }); + it('Save report', function () { + reportGeneratorPage.saveReport(); + }); it('Return to "My Reports"', function () { reportGeneratorPage.returnToMyReports(); }); @@ -644,6 +656,14 @@ describe('Report Generator', function () { expect(reportRow.getNumberOfCharts(), 'Number of charts of is correct').to.be.equal(testReport.numberOfCharts); expect(reportRow.getNumberOfChartsPerPage(), 'Number of charts per page is correct').to.be.equal(testReport.chartsPerPage); }); + it('Edit copied report and compare values', function () { + reportGeneratorPage.getMyReportsRows()[2].doubleClick(); + expect(reportGeneratorPage.getHeaderText(), 'Header text is correct').to.be.equal(testReport.header); + expect(reportGeneratorPage.getNumberOfChartsPerPage(), 'Number of charts per page is correct').to.be.equal(testReport.chartsPerPage); + }); + it('Return to "My Reports"', function () { + reportGeneratorPage.returnToMyReports(); + }); }); describe('Edit report and make changes', function () {