VisUtil.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. 'use strict';
  2. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  3. /**
  4. * Licensed Materials - Property of IBM
  5. * IBM Cognos Products: BI Cloud (C) Copyright IBM Corp. 2019
  6. * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. */
  8. /* global FormData */
  9. define(['dashboard-analytics/widgets/livewidget/nls/StringResources', '../../../util/VidaSdkUtil', '../../../visualizations/vipr/VIPRLibraries', '../../../visualizations/vipr/VIPR', '../../../lib/@waca/dashboard-common/dist/api/Error'], function (StringResources, VidaSdkUtil, VIPRLibraries, VIPR, APIError) {
  10. return function () {
  11. function VisUtil() {
  12. _classCallCheck(this, VisUtil);
  13. }
  14. VisUtil.validateVisDefinition = function validateVisDefinition(content, dashboard) {
  15. var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
  16. var definition = content.getFeature('Visualization').getDefinition();
  17. var visId = definition ? definition.getId() : options.visId;
  18. var isSystemVis = definition && VIPRLibraries.isSystemLib(definition.getId(), VIPR.getSystemLibIds());
  19. if (isSystemVis) {
  20. return Promise.resolve(true);
  21. }
  22. var contentState = content.getFeature('state.internal');
  23. //First clear previous error load definition first before validate again to pick up the latest definition state cached in the user session
  24. if (contentState) {
  25. var error = contentState.getError();
  26. if (error && error.getParams) {
  27. var params = error.getParams() || {};
  28. if (params.errorInfo && params.errorInfo.errorCode === VIPRLibraries.LOAD_DEFINITION_ERROR) {
  29. contentState.clearError();
  30. }
  31. }
  32. }
  33. if (visId === 'visualizationPreview') {
  34. return VidaSdkUtil.isSDKActive(dashboard).then(function (isActive) {
  35. if (!isActive) {
  36. VisUtil._setError(contentState, visId);
  37. }
  38. return isActive;
  39. });
  40. } else {
  41. var definitionError = definition.getState().getError();
  42. if (!definitionError) {
  43. return Promise.resolve(true);
  44. } else {
  45. VisUtil._setError(contentState, visId, definitionError);
  46. return Promise.resolve(false);
  47. }
  48. }
  49. };
  50. VisUtil._setError = function _setError(stateAPI, visId, error) {
  51. if (stateAPI) {
  52. var errorToSet = error instanceof APIError ? error : VisUtil.createVisDefinitionLoadingError(visId);
  53. stateAPI.setError(errorToSet);
  54. }
  55. };
  56. VisUtil.createVisDefinitionLoadingError = function createVisDefinitionLoadingError(visId) {
  57. var msg = StringResources.get('loadVisDefinitionError', { id: visId });
  58. return new APIError({
  59. msg: msg,
  60. params: {
  61. errorInfo: {
  62. id: visId,
  63. errorCode: VIPRLibraries.LOAD_DEFINITION_ERROR,
  64. errorMessage: msg
  65. }
  66. }
  67. });
  68. };
  69. return VisUtil;
  70. }();
  71. });
  72. //# sourceMappingURL=VisUtil.js.map