waca_removeWidgetContentBoardSpec.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. 'use strict';
  2. /*
  3. *+------------------------------------------------------------------------+
  4. *| Licensed Materials - Property of IBM
  5. *| IBM Cognos Products: BI Dashboard
  6. *| (C) Copyright IBM Corp. 2017
  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(['../../../lib/@waca/core-client/js/core-client/ui/core/Class', '../../../lib/@waca/upgrades/UpgradeBase'], function (Class, UpgradeBase) {
  13. var Upgrade = Class.extend([UpgradeBase], {
  14. init: function init() {},
  15. /**
  16. * Perform upgrade
  17. *
  18. * @param {object} spec - spec to perform upgrade on
  19. *
  20. * @return {Promise} Promise to be resolved when upgrade performed
  21. */
  22. up: function up(spec) {
  23. if (!spec) {
  24. return Promise.resolve(spec);
  25. }
  26. if (!this._specHasWidgets(spec)) {
  27. return Promise.resolve(spec);
  28. }
  29. Object.keys(spec.widgets).forEach(function (widgetId) {
  30. if (spec.widgets[widgetId].type !== 'text' && spec.widgets[widgetId].type !== 'shape' && spec.widgets[widgetId].content) {
  31. delete spec.widgets[widgetId].content;
  32. }
  33. });
  34. return Promise.resolve(spec);
  35. },
  36. down: function down(spec) {
  37. // no downgrade at this time; return as is:
  38. // we don't save backups of specs
  39. return Promise.resolve(spec);
  40. },
  41. _specHasWidgets: function _specHasWidgets(spec) {
  42. if (!spec.widgets) {
  43. return false;
  44. }
  45. return Object.keys(spec.widgets).length > 0;
  46. }
  47. });
  48. return new Upgrade();
  49. });
  50. //# sourceMappingURL=waca_removeWidgetContentBoardSpec.js.map