cvAppSaveMenuActions.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. // Licensed Materials - Property of IBM
  2. // IBM Cognos Products: rs
  3. // (C) Copyright IBM Corp. 2015, 2020
  4. // US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  5. define(['bi/glass/app/plugins/MenuActionInterface'], function(MenuActionInterface) {
  6. 'use strict';
  7. var ClassicViewerSaveMenu = MenuActionInterface.extend({
  8. onSelectItem: function(context) {
  9. var v_sMenuItem = context.target.itemId;
  10. var v_oCognosViewer = context.glassContext.currentAppView.currentContentView.getCognosViewer();
  11. if (! v_oCognosViewer)
  12. {
  13. return;
  14. }
  15. v_oCognosViewer.m_bIgnoreCloseWindow = undefined;
  16. console.log("cvAppSaveMenuActions.onSelectItem selected item %s", v_sMenuItem);
  17. switch( v_sMenuItem )
  18. {
  19. case "com.ibm.bi.classicviewer.keepVersion_Save":
  20. v_oCognosViewer.m_bIgnoreCloseWindow = true;
  21. v_oCognosViewer.getRV().SaveReport(true);
  22. break;
  23. case "com.ibm.bi.classicviewer.keepVersion_ReportView":
  24. v_oCognosViewer.m_bIgnoreCloseWindow = true;
  25. v_oCognosViewer.getRV().SaveAsReportView(true);
  26. break;
  27. default:
  28. console.log('unhandled menu item');
  29. }
  30. },
  31. isItemVisible: function(context){
  32. var v_sMenuItem = context.target.itemId;
  33. var v_oCognosViewer = context.glassContext.currentAppView.currentContentView.getCognosViewer();
  34. if (! v_oCognosViewer)
  35. {
  36. return false;
  37. }
  38. var v_bResult;
  39. switch (v_sMenuItem) {
  40. case "com.ibm.bi.classicviewer.keepVersion_Save":
  41. var m_oCmProperties = context.glassContext.currentAppView.currentContentView.cmProperties;
  42. v_bResult = m_oCmProperties && m_oCmProperties.permissions.indexOf("write") != -1;
  43. break;
  44. case "com.ibm.bi.classicviewer.keepVersion_ReportView":
  45. // Need an actual object to save as report view. Use presence of cmProperties to determine this requirement.
  46. var m_oCmProperties = context.glassContext.currentAppView.currentContentView.cmProperties;
  47. v_bResult = !m_oCmProperties || v_oCognosViewer.envParams && v_oCognosViewer.envParams["ui.objectClass"] === "reportView" ? false : true;
  48. break;
  49. default:
  50. v_bResult = true;
  51. break;
  52. }
  53. return v_bResult;
  54. }
  55. });
  56. return ClassicViewerSaveMenu;
  57. });