SourcesCollectionAPI.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. 'use strict';
  2. /*
  3. *+------------------------------------------------------------------------+
  4. *| Licensed Materials - Property of IBM
  5. *| IBM Cognos Products: Dashboard
  6. *| (C) Copyright IBM Corp. 2017 - 2018
  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', './modelmanagers/SourcesCollectionManager'], function (Class, SourcesCollectionManager) {
  13. 'use strict';
  14. /**
  15. * INTENT: SourcesCollectionAPI provides a UI-Oriented interface to the list of sources.
  16. * It hides the implementation of the underlying model.
  17. */
  18. var SourcesCollectionAPI = Class.extend({
  19. /**
  20. * Contructor
  21. * @param {Object} options.dashboardApi The dashboard API
  22. * @param {Object} options.sourcesCollection The collection object from the boardModel
  23. */
  24. init: function init(options) {
  25. SourcesCollectionAPI.inherited('init', this, arguments);
  26. var sourcesCollectionManager = new SourcesCollectionManager(options);
  27. // event APIa
  28. this.on = options.sourcesCollection.on.bind(options.sourcesCollection);
  29. this.off = options.sourcesCollection.off.bind(options.sourcesCollection);
  30. //DEFINE THE API....
  31. this.getSource = sourcesCollectionManager.getSource.bind(sourcesCollectionManager);
  32. this.getSources = sourcesCollectionManager.getSources.bind(sourcesCollectionManager);
  33. this.addSource = options.sourcesCollection.addSource.bind(options.sourcesCollection);
  34. this.removeSource = sourcesCollectionManager.removeSource.bind(sourcesCollectionManager);
  35. this.destroy = options.sourcesCollection.destroy.bind(options.sourcesCollection);
  36. this.registerUsage = sourcesCollectionManager.registerUsage.bind(sourcesCollectionManager);
  37. this.deregisterUsage = sourcesCollectionManager.deregisterUsage.bind(sourcesCollectionManager);
  38. this.isSourceUsed = sourcesCollectionManager.isSourceUsed.bind(sourcesCollectionManager);
  39. this.usesSource = sourcesCollectionManager.usesSource.bind(sourcesCollectionManager);
  40. this.addSourcesForPin = sourcesCollectionManager.addSourcesForPin.bind(sourcesCollectionManager);
  41. this.getSourceIdsFromAssetId = sourcesCollectionManager.getSourceIdsFromAssetId.bind(sourcesCollectionManager);
  42. }
  43. });
  44. return SourcesCollectionAPI;
  45. });
  46. //# sourceMappingURL=SourcesCollectionAPI.js.map