PluginsDefinition.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. "use strict";
  2. /**
  3. * Licensed Materials - Property of IBM
  4. * IBM Cognos Products: Cognos Analytics
  5. * Copyright IBM Corp. 2015, 2016
  6. * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. */
  8. define(['bi/admin/nls/StringResource', 'bi/admin/common/utils/CapabilityHelper'], function (StringResource, CapabilityHelper) {
  9. 'use strict'; // NOSONAR: meant to be strict
  10. var _singletonInstance = null;
  11. var PluginsDefinition = function PluginsDefinition() {
  12. if (PluginsDefinition.prototype._singletonInstance) {
  13. return PluginsDefinition.prototype._singletonInstance;
  14. }
  15. };
  16. PluginsDefinition.prototype.getPlugins = function (isSysAdmin, tenantID, glassContext, options) {
  17. // set the glassContext into the capabilities helper
  18. CapabilityHelper.glassContext = glassContext; // this check if carried down from AdminPanel
  19. var isPortalAdmin = CapabilityHelper.checkCapabilities('canUsePortalAdministrationTool') && !isSysAdmin ? true : false;
  20. var canManageVisualizations = CapabilityHelper.checkCapabilities('canManageVisualizations') && !isSysAdmin ? true : false;
  21. var canUseUsersGroupsAndRoles = CapabilityHelper.checkCapabilities('canUseUsersGroupsAndRolesTool') && !isSysAdmin ? true : false;
  22. var tabs = [];
  23. var themesTabSpec = {
  24. name: StringResource.get('themes'),
  25. module: 'bi/admin/system/ThemesTab',
  26. parentView: options.slideout,
  27. slideout: options.slideout,
  28. getDefaultThemeCallback: options.getDefaultTheme,
  29. setDefaultThemeCallback: options.setDefaultTheme,
  30. isPortalAdmin: isPortalAdmin,
  31. tenantID: tenantID,
  32. disableApplyButton: !isSysAdmin && !isPortalAdmin,
  33. tenantsListController: options.listController
  34. };
  35. var extensionsTabSpec = {
  36. name: StringResource.get('extensions'),
  37. module: 'bi/admin/system/ExtensionsTab',
  38. parentView: options.slideout,
  39. slideout: options.slideout,
  40. tenantID: tenantID
  41. };
  42. var viewsTabSpec = {
  43. name: StringResource.get('views'),
  44. module: 'bi/admin/system/ViewsTab',
  45. parentView: options.slideout,
  46. slideout: options.slideout,
  47. isPortalAdmin: isPortalAdmin,
  48. tenantID: tenantID,
  49. isSysAdmin: isSysAdmin
  50. };
  51. var paletteTabSpec = {
  52. name: StringResource.get('palettes'),
  53. module: 'bi/admin/system/PalettesTab',
  54. parentView: options.slideout,
  55. slideout: options.slideout
  56. };
  57. var defaultProfileTabSpec = {
  58. name: StringResource.get('profile'),
  59. module: 'bi/admin/system/DefaultProfileTab',
  60. parentView: options.slideout,
  61. slideout: options.slideout
  62. };
  63. var customVisualizationsTabSpec = {
  64. name: StringResource.get('customVisualizations'),
  65. module: 'bi/admin/system/CustomVisualizationsTab',
  66. parentView: options.slideout,
  67. slideout: options.slideout
  68. }; // tabs used to be protected with canUsePortalAdministrationTool
  69. if (isSysAdmin || isPortalAdmin) {
  70. tabs.push(themesTabSpec);
  71. tabs.push(extensionsTabSpec);
  72. tabs.push(paletteTabSpec);
  73. tabs.push(viewsTabSpec);
  74. }
  75. if (isSysAdmin || !tenantID && canUseUsersGroupsAndRoles) {
  76. tabs.push(defaultProfileTabSpec);
  77. } // parameters used to be protected with canUsePortalAdministrationTool
  78. if (isSysAdmin || isPortalAdmin) {
  79. tabs.push({
  80. name: StringResource.get('globalParameters'),
  81. module: 'bi/admin/common/GlobalParametersTab',
  82. parentView: options.slideout,
  83. slideout: options.slideout,
  84. getParameters: options.getParameters,
  85. updateParameters: options.updateParameters,
  86. isPortalAdmin: isPortalAdmin,
  87. tenantID: tenantID,
  88. isSysAdmin: isSysAdmin
  89. });
  90. }
  91. if (isSysAdmin || canManageVisualizations) {
  92. tabs.push(customVisualizationsTabSpec);
  93. }
  94. return tabs;
  95. };
  96. var _static = {
  97. getInstance: function getInstance() {
  98. if (!_singletonInstance) {
  99. _singletonInstance = new PluginsDefinition();
  100. }
  101. return _singletonInstance;
  102. }
  103. };
  104. return _static.getInstance();
  105. });