123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- // Licensed Materials - Property of IBM
- // IBM Cognos Products: rs
- // (C) Copyright IBM Corp. 2015, 2021
- // US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- define(['bi/glass/app/plugins/MenuActionInterface'], function(MenuActionInterface) {
- 'use strict';
- var AuthoringMenu = MenuActionInterface.extend({
-
- onSelectItem: function(context) {
- var v_sMenuItem = context.target.itemId;
- var v_sObserverId = "rsAppSaveAsMenuActions";
- var v_Application = context.glassContext.currentAppView.currentContentView.getAuthoringApplication();
- if (!v_Application)
- {
- return;
- }
- switch( v_sMenuItem )
- {
- case "com.ibm.bi.authoring.save_as":
- v_Application.SaveAsReport();
- break;
-
- case "com.ibm.bi.authoring.convert_to_active_report":
- v_Application.ConvertToActiveReport();
- break;
-
- case "com.ibm.bi.authoring.convert_to_template":
- v_Application.ConvertToTemplate();
- break;
-
- case "com.ibm.bi.authoring.save_as_report_view":
- v_Application.SaveAsReportView();
- break;
-
- case "com.ibm.bi.authoring.save":
- case "com.ibm.bi.datasets.dataset_save":
- var v_oCmProperties = context.glassContext.currentAppView.currentContentView.cmProperties;
- if (v_sMenuItem == "com.ibm.bi.authoring.save" && v_Application.SharedState.Get("isViewer") &&
- v_oCmProperties && v_oCmProperties.permissions.indexOf("read") == -1) {
- // Doing save from viewer without read access - not supported since need to unstub spec
- // which is not possible if can't read spec.
- context.glassContext.showToast(v_Application.GetString("IDS_MSG_NO_PERMISSIONS_TO_SAVE"), {'type':'error'});
- break;
- }
- else if (!v_oCmProperties || v_oCmProperties.permissions.indexOf("write") != -1)
- {
- // no cm permissions implies this is a new report/dataset so we need to allow save.
- v_Application.Save();
- }
- else
- {
- // No write permission
- if (v_sMenuItem == "com.ibm.bi.authoring.save" && v_Application.SharedState.Get("isViewer") &&
- context.glassContext.hasCapability("canUseReportStudio") && context.glassContext.hasCapability("canUseReportStudioFileManagement")) {
- // Doing a save from viewer - switch to save as but only if the required capabiltities are available
- v_Application.SaveAsReport();
- }
- else {
- context.glassContext.showToast(v_Application.GetString("IDS_MSG_NO_PERMISSIONS_TO_SAVE"), {'type':'error'});
- }
- }
- break;
-
- case "com.ibm.bi.datasets.refresh":
- v_Application.SaveDataSet(function(v_sFileName, v_sStoreID) {
- // options.id {string} - store ID of the dataset to run
- // options.name {string} - the name of the data set to execute. Will be shown in the toast
- // options.showToastWhenDone {boolean} - default is true, set to false if you don't want a toast to be displayed when the dataset is done running
- // options.glassContext {object} - the glassContext object
- var options =
- {
- id : v_sStoreID,
- name : v_sFileName,
- showToastWhenDone : true,
- glassContext : context.glassContext
- };
-
-
- context.glassContext.getSvc('.DatasetExecutionService')
- .then(function(DatasetExecutionService){
- DatasetExecutionService.execute(options);
- });
- });
- break;
- default:
- console.warn("Unhandled item: " + v_sMenuItem);
- return;
- }
-
- v_Application.GlassMenu_onSelectItem(v_sMenuItem);
- },
-
- isItemVisible: function(context){
- var v_sMenuItem = context.target.itemId;
- var v_Application = context.glassContext.currentAppView.currentContentView.getAuthoringApplication();
- if (!v_Application)
- {
- return;
- }
- var v_oCmProperties = context.glassContext.currentAppView.currentContentView.cmProperties;
- var v_bRead = !v_oCmProperties || v_oCmProperties.permissions.indexOf("read") != -1;
- var v_bResult;
- switch (v_sMenuItem)
- {
- case "com.ibm.bi.authoring.save_as_report_view":
- v_bResult = v_Application.SharedState.Get("isViewer") && v_Application.SharedState.Get("cmSearchPath") && !v_Application.SharedState.Get("isModified");
- break;
- case "com.ibm.bi.datasets.dataset_save":
- v_bResult = v_Application.SharedState.Get("isModified");
- break;
- case "com.ibm.bi.authoring.save":
- v_bResult = false; // always hide save from popup since it is the default action on button
- break;
- case "com.ibm.bi.authoring.save_as":
- if (!(context.glassContext.hasCapability("canUseReportStudio") && context.glassContext.hasCapability("canUseReportStudioFileManagement"))) {
- // save as calls the report service add method which requires both the above capabilities.
- v_bResult = false;
- }
- else if (v_Application.SharedState.Get("isViewer")) {
- // Saving from viewer requires full spec which is only possible if you have read access
- v_bResult = v_bRead;
- }
- else {
- v_bResult = true;
- }
- break;
- case "com.ibm.bi.datasets.refresh":
- v_bResult = v_Application.SharedState.Get("isModified");
- break;
- case "com.ibm.bi.authoring.convert_to_active_report":
- v_bResult = !v_Application.SharedState.Get("isViewer") && !v_Application.SharedState.Get("isActiveReport");
- break;
- case "com.ibm.bi.authoring.convert_to_template":
- v_bResult = !v_Application.SharedState.Get("isViewer");
- break;
- default:
- v_bResult = true;
- break;
- }
-
- return v_bResult;
- }
-
- });
- return AuthoringMenu;
- });
|