1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- "use strict";
- /**
- * Licensed Materials - Property of IBM
- *
- * IBM Cognos Products: ADMIN
- *
- * Copyright IBM Corp. 2020
- *
- * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- */
- define(['react', 'react-dom', 'jquery', 'underscore', 'bi/glass/app/ContentView', 'bi/admin/nls/StringResource', 'bi/authoring/plugins/rsContextMenuActions', 'ba-react-admin/ba-react-admin.min'], function (React, ReactDOM, $, _, ContentView, StringResource, RsContextMenuActions, AdminReact) {
- var currentEl = null;
- var view = ContentView.extend({
- init: function init(options) {
- view.inherited('init', this, arguments);
- _.extend(this, options);
- },
- getSelectedContext: function getSelectedContext(options) {
- if (options && options.target && options.target.activeObject) {
- return options.target.activeObject.aSelectedContext;
- }
- },
- isItemVisible: function isItemVisible(context) {
- if (!(context.glassContext.isDevInstall && context.glassContext.isDevInstall())) {
- this._selectedContext = this.getSelectedContext(context);
- var rsContextMenuActions = new RsContextMenuActions(); //want to use the report studio check for run as so
- //need a slight massage of the itemId
- var oldItemId = context.target.itemId;
- context.target.itemId = 'com.ibm.bi.contentApps.action.runAs';
- if (this._selectedContext && this._selectedContext.length === 1) {
- var obj = this._selectedContext[0];
- var canExecute = obj && obj.permissions && obj.permissions.indexOf('execute') !== -1;
- var result = false;
- if (obj.type === 'jobDefinition') {
- result = canExecute;
- } else {
- result = rsContextMenuActions.isItemVisible(context);
- }
- context.target.itemId = oldItemId;
- return result;
- }
- context.target.itemId = oldItemId;
- return false;
- } else {
- return false;
- }
- },
- setFocus: function setFocus() {},
- onSelectItem: function onSelectItem(options) {
- if (!currentEl) {
- currentEl = $("<div id='runasroot'/>");
- $(document.body).append(currentEl);
- } else {
- ReactDOM.unmountComponentAtNode(currentEl[0]);
- }
- var anEl = React.createElement(AdminReact.RunAsAction, {
- StringResource: StringResource,
- glassContext: options.glassContext,
- objectInfo: options.target.activeObject.aSelectedContext[0]
- });
- ReactDOM.render(anEl, currentEl[0]);
- return Promise.resolve();
- }
- });
- return view;
- });
|