DatasetRelinkDialog.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. 'use strict';
  2. /**
  3. * Licensed Materials - Property of IBM
  4. *
  5. * IBM Cognos Products: BI Dashboard
  6. *
  7. * Copyright IBM Corp. 2016, 2020
  8. *
  9. * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  10. */
  11. define(['underscore', '../../../lib/@waca/core-client/js/core-client/ui/content/dialog/OpenDialog', 'bi/content_apps/utils/ContentStoreObject', '../../nls/StringResources'], function (_, BaseDialog, ContentStoreObject, resources) {
  12. var RelinkDialog = BaseDialog.extend({
  13. oDataset: null,
  14. /**
  15. * @param options {object} Options to initialize the dialog object
  16. * */
  17. init: function init(options) {
  18. this.glassContext = options.glassContext;
  19. this.setDataset(options.dataset);
  20. RelinkDialog.inherited('init', this, [this.getRelinkDlgOptions(options)]);
  21. },
  22. /**
  23. * Populate the options used to initialize dataset relink dialog
  24. * @param {object} options:{context:<object>, dataset:<object>}
  25. *
  26. * @returns {object}
  27. */
  28. getRelinkDlgOptions: function getRelinkDlgOptions(options) {
  29. var supportedTypes = ['module', 'dataSet2', 'uploadedFile', 'package'];
  30. var filtersByType = ['folder|package|module|dataSet2|uploadedFile'];
  31. var oResult = {
  32. 'primaryBtnText': resources.get('dlg_use'),
  33. 'typesToOpen': supportedTypes,
  34. 'dialogTitle': resources.get('dlg_RelinkDatasetTitle', {
  35. 'datasetName': _.escape(options.dataset.name)
  36. }),
  37. 'filtersByTypes': filtersByType,
  38. 'multiSelect': false,
  39. 'glassContext': this.glassContext,
  40. 'onOpenCallback': this.onOpenCallback.bind(this)
  41. };
  42. var oDepRefAncestors = options.dataset.ancestors;
  43. if (oDepRefAncestors && oDepRefAncestors.length > 0) {
  44. var oLastItem = _.last(oDepRefAncestors);
  45. oResult.url = oLastItem._meta.links.items.url;
  46. oResult.selfUrl = oLastItem._meta.links.self.url;
  47. oResult.ancestors = this.getAncestors(oDepRefAncestors);
  48. }
  49. return oResult;
  50. },
  51. /**
  52. * @return {object} Dataset object that is to be relinked
  53. * */
  54. getDataset: function getDataset() {
  55. return this.oDataset;
  56. },
  57. setDataset: function setDataset(dataset) {
  58. this.oDataset = dataset;
  59. },
  60. /**
  61. * Return the ancestors object which content open view supports
  62. * @return {array}
  63. * @param {array} ancestors Object returned originally from dataset deployment reference
  64. * */
  65. getAncestors: function getAncestors(ancestors) {
  66. return ContentStoreObject.getAncestors({
  67. 'ancestors': ancestors
  68. });
  69. },
  70. /**
  71. * Callback hander after user clicks 'use' button to do dataset relink
  72. * @param {object} item selected from dialog
  73. * */
  74. onOpenCallback: function onOpenCallback(selectedItem) {
  75. if (selectedItem && selectedItem.length > 0) {
  76. var item = selectedItem[0];
  77. var oNewDatasetObj = {
  78. 'id': item.id,
  79. 'name': item.defaultName,
  80. 'type': item.type,
  81. 'state': 'ready',
  82. 'ancestors': item.ancestors
  83. };
  84. if (this.oDataset) {
  85. this.oDataset.set(oNewDatasetObj);
  86. }
  87. }
  88. }
  89. });
  90. return RelinkDialog;
  91. });
  92. //# sourceMappingURL=DatasetRelinkDialog.js.map