'use strict'; /* *+------------------------------------------------------------------------+ *| Licensed Materials - Property of IBM *| IBM Cognos Products: Dashboard *| (C) Copyright IBM Corp. 2018, 2020 *| *| US Government Users Restricted Rights - Use, duplication or disclosure *| restricted by GSA ADP Schedule Contract with IBM Corp. *+------------------------------------------------------------------------+ */ define(['./BaseTask', 'underscore'], function (BaseTask, _) { 'use strict'; var DataTask = BaseTask.extend({ init: function init() { DataTask.inherited('init', this, arguments); }, /** * Load the data and store in the data member of the renderContext. * @param renderContext - information collected by a particular call to render or reRender (such as the view, control, data etc). * @returns a promise resolving with the render context */ process: function process(renderContext) { var _this = this; var view = this.getRenderState().getCurrentContextData('visView'); if (!view || this._isStepComplete(renderContext, 'data')) { return Promise.resolve(renderContext); } //call the preData method view.preDataReady(); return view.whenDataReady(renderContext).then(function (result) { return !_.isEmpty(result.data) ? Promise.all([result, _this._handleRenderContextForConditionalPalette(renderContext)]) : [result]; }).then(function (_ref) { var result = _ref[0]; if (result) { var data = result.data; view.setRenderingNewData(true); if (renderContext.extraInfo && renderContext.extraInfo.sameQueryValidateMode) { renderContext.sameQueryData = true; renderContext.extraInfo.queryRefresh = true; } _this._completeStep(renderContext, 'data', data); } return renderContext; }).catch(function (error) { if (!error || error.msg !== 'dwErrorStaleRequest') { var errorMessage = error ? error.msg : 'dwErrorRenderingVisualization'; var errorParam = error ? error.param : null; _this.showError(errorMessage, errorParam); } throw error; }); }, _handleRenderContextForConditionalPalette: function _handleRenderContextForConditionalPalette(renderContext) { if (renderContext.refresh && renderContext.refresh.data) { // todo: the return below should be moved to a separate Feature. e.g. colorPatelleFeature return this.visAPI.initConditionalPalette(renderContext.extraInfo); } else if (renderContext.refreshAll) { // re-render with existing model can simply refresh the palette return this.visAPI.updateConditionalPalette(); } else { return Promise.resolve(); } } }); return DataTask; }); //# sourceMappingURL=DataTask.js.map