DataTask.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. 'use strict';
  2. /*
  3. *+------------------------------------------------------------------------+
  4. *| Licensed Materials - Property of IBM
  5. *| IBM Cognos Products: Dashboard
  6. *| (C) Copyright IBM Corp. 2018, 2020
  7. *|
  8. *| US Government Users Restricted Rights - Use, duplication or disclosure
  9. *| restricted by GSA ADP Schedule Contract with IBM Corp.
  10. *+------------------------------------------------------------------------+
  11. */
  12. define(['./BaseTask', 'underscore'], function (BaseTask, _) {
  13. 'use strict';
  14. var DataTask = BaseTask.extend({
  15. init: function init() {
  16. DataTask.inherited('init', this, arguments);
  17. },
  18. /**
  19. * Load the data and store in the data member of the renderContext.
  20. * @param renderContext - information collected by a particular call to render or reRender (such as the view, control, data etc).
  21. * @returns a promise resolving with the render context
  22. */
  23. process: function process(renderContext) {
  24. var _this = this;
  25. var view = this.getRenderState().getCurrentContextData('visView');
  26. if (!view || this._isStepComplete(renderContext, 'data')) {
  27. return Promise.resolve(renderContext);
  28. }
  29. //call the preData method
  30. view.preDataReady();
  31. return view.whenDataReady(renderContext).then(function (result) {
  32. return !_.isEmpty(result.data) ? Promise.all([result, _this._handleRenderContextForConditionalPalette(renderContext)]) : [result];
  33. }).then(function (_ref) {
  34. var result = _ref[0];
  35. if (result) {
  36. var data = result.data;
  37. view.setRenderingNewData(true);
  38. if (renderContext.extraInfo && renderContext.extraInfo.sameQueryValidateMode) {
  39. renderContext.sameQueryData = true;
  40. renderContext.extraInfo.queryRefresh = true;
  41. }
  42. _this._completeStep(renderContext, 'data', data);
  43. }
  44. return renderContext;
  45. }).catch(function (error) {
  46. if (!error || error.msg !== 'dwErrorStaleRequest') {
  47. var errorMessage = error ? error.msg : 'dwErrorRenderingVisualization';
  48. var errorParam = error ? error.param : null;
  49. _this.showError(errorMessage, errorParam);
  50. }
  51. throw error;
  52. });
  53. },
  54. _handleRenderContextForConditionalPalette: function _handleRenderContextForConditionalPalette(renderContext) {
  55. if (renderContext.refresh && renderContext.refresh.data) {
  56. // todo: the return below should be moved to a separate Feature. e.g. colorPatelleFeature
  57. return this.visAPI.initConditionalPalette(renderContext.extraInfo);
  58. } else if (renderContext.refreshAll) {
  59. // re-render with existing model can simply refresh the palette
  60. return this.visAPI.updateConditionalPalette();
  61. } else {
  62. return Promise.resolve();
  63. }
  64. }
  65. });
  66. return DataTask;
  67. });
  68. //# sourceMappingURL=DataTask.js.map