Skip to content

Commit

Permalink
Moved to service
Browse files Browse the repository at this point in the history
  • Loading branch information
ranbena committed Oct 31, 2019
1 parent 7e3a02a commit a336c5b
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 69 deletions.
2 changes: 1 addition & 1 deletion client/app/pages/dashboards/dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ <h3>
</div>

<div class="m-b-10 p-t-15 p-l-15 p-r-15 p-b-5 bg-white tiled" ng-if="$ctrl.globalParameters.length > 0" data-test="DashboardParameters">
<parameters parameters="$ctrl.globalParameters" query-result-error-data="$ctrl.getQueryResultsErrorData()" on-values-change="$ctrl.refreshDashboard"></parameters>
<parameters parameters="$ctrl.globalParameters" query-result-error-data="$ctrl.dashboard.getQueryResultsErrorData()" on-values-change="$ctrl.refreshDashboard"></parameters>
</div>

<div class="m-b-10 p-15 bg-white tiled" ng-if="$ctrl.filters | notEmpty">
Expand Down
33 changes: 0 additions & 33 deletions client/app/pages/dashboards/dashboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ function DashboardCtrl(
Events,
) {
let recentPositions = [];
let currentQueryResultsErrorData;

const saveDashboardLayout = (changedPositions) => {
if (!this.dashboard.canEdit()) {
Expand Down Expand Up @@ -333,38 +332,6 @@ function DashboardCtrl(
});
};

this.getQueryResultsErrorData = () => {
const dashboardErrors = _.map(this.dashboard.widgets, (widget) => {
// get result
const result = widget.getQueryResult();
if (!result) {
return null;
}

// get error data
const errorData = result.getErrorData();
if (_.isEmpty(errorData)) {
return null;
}

// dashboard params only
const localParamNames = _.map(widget.getLocalParameters(), p => p.name);
const filtered = _.omit(errorData.parameters, localParamNames);

return filtered;
});

const merged = _.assign({}, ...dashboardErrors);
const errorData = _.isEmpty(merged) ? null : { parameters: merged };

// avoiding Angular infdig (ANGULAR_REMOVE_ME)
if (!_.isEqual(currentQueryResultsErrorData, errorData)) {
currentQueryResultsErrorData = errorData;
}

return currentQueryResultsErrorData;
};

this.showAddTextboxDialog = () => {
TextboxDialog.showModal({
dashboard: this.dashboard,
Expand Down
2 changes: 1 addition & 1 deletion client/app/pages/dashboards/public-dashboard-page.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<page-header title="$ctrl.dashboard.name"></page-header>

<div class="m-b-10 p-t-15 p-l-15 p-r-15 p-b-5 bg-white tiled" ng-if="$ctrl.globalParameters.length > 0">
<parameters parameters="$ctrl.globalParameters" query-result-error-data="$ctrl.getQueryResultsErrorData()" on-values-change="$ctrl.refreshDashboard"></parameters>
<parameters parameters="$ctrl.globalParameters" query-result-error-data="$ctrl.dashboard.getQueryResultsErrorData()" on-values-change="$ctrl.refreshDashboard"></parameters>
</div>

<div class="m-b-5">
Expand Down
34 changes: 0 additions & 34 deletions client/app/pages/dashboards/public-dashboard-page.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import PromiseRejectionError from '@/lib/promise-rejection-error';
import logoUrl from '@/assets/images/redash_icon_small.png';
import template from './public-dashboard-page.html';
import dashboardGridOptions from '@/config/dashboard-grid-options';
import _ from 'lodash';
import './dashboard.less';

function loadDashboard($http, $route) {
Expand All @@ -19,7 +18,6 @@ const PublicDashboardPage = {
'ngInject';

this.filters = [];
let currentQueryResultsErrorData;

this.dashboardGridOptions = Object.assign({}, dashboardGridOptions, {
resizable: { enabled: false },
Expand Down Expand Up @@ -72,38 +70,6 @@ const PublicDashboardPage = {
};

this.refreshDashboard();

this.getQueryResultsErrorData = () => {
const dashboardErrors = _.map(this.dashboard.widgets, (widget) => {
// get result
const result = widget.getQueryResult();
if (!result) {
return null;
}

// get error data
const errorData = result.getErrorData();
if (_.isEmpty(errorData)) {
return null;
}

// dashboard params only
const localParamNames = _.map(widget.getLocalParameters(), p => p.name);
const filtered = _.omit(errorData.parameters, localParamNames);

return filtered;
});

const merged = _.assign({}, ...dashboardErrors);
const errorData = _.isEmpty(merged) ? null : { parameters: merged };

// avoiding Angular infdig (ANGULAR_REMOVE_ME)
if (!_.isEqual(currentQueryResultsErrorData, errorData)) {
currentQueryResultsErrorData = errorData;
}

return currentQueryResultsErrorData;
};
},
};

Expand Down
33 changes: 33 additions & 0 deletions client/app/services/dashboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,39 @@ function DashboardService($resource, $http, $location, currentUser) {
});
};

let currentQueryResultsErrorData; // swap for useMemo ANGULAR_REMOVE_ME
resource.prototype.getQueryResultsErrorData = function getQueryResultsErrorData() {
const dashboardErrors = _.map(this.widgets, (widget) => {
// get result
const result = widget.getQueryResult();
if (!result) {
return null;
}

// get error data
const errorData = result.getErrorData();
if (_.isEmpty(errorData)) {
return null;
}

// dashboard params only
const localParamNames = _.map(widget.getLocalParameters(), p => p.name);
const filtered = _.omit(errorData.parameters, localParamNames);

return filtered;
});

const merged = _.assign({}, ...dashboardErrors);
const errorData = _.isEmpty(merged) ? null : { parameters: merged };

// avoiding Angular infdig (ANGULAR_REMOVE_ME)
if (!_.isEqual(currentQueryResultsErrorData, errorData)) {
currentQueryResultsErrorData = errorData;
}

return currentQueryResultsErrorData;
};

return resource;
}

Expand Down

0 comments on commit a336c5b

Please sign in to comment.