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 () {