123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- "use strict";
- /**
- * Licensed Materials - Property of IBM
- * IBM Cognos Products: admin
- * Copyright IBM Corp. 2015, 2017
- * US Government Users Restricted Rights -
- * Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- */
- define(['react', 'react-dom', 'ba-react-admin/ba-react-admin.min', 'bi/glass/app/ContentView', 'jquery', 'bi/admin/datasource/App', 'bi/admin/nls/StringResource', 'bi/commons/utils/Utils', 'bi/admin/common/slideout/admin', 'bi/admin/common/utils/CapabilityHelper', 'bi/admin/system/slideout/PluginsDefinition'], function (React, ReactDOM, AdminReact, ContentView, $, App, StringResource, Utils, adminMeta, CapabilityHelper, PluginsDefinition) {
- /**
- * Sample content view that extends the glass AdminPane class
- *
- */
- var AdminPane = ContentView.extend({
- init: function init(options) {
- ContentView.inherited('init', this, arguments);
- $.extend(this, options);
- App.glassContext = this.glassContext;
- CapabilityHelper.glassContext = this.glassContext;
- },
- _getViewWidth: function _getViewWidth(wide) {
- var width = 450;
- if (wide) {
- width = $(window).width() < 1370 ? 576 : 900;
- }
- return width;
- },
- setFocus: function setFocus() {
- this.$el.find('.list-item').filter(':visible:first').focus();
- },
- _getMeta: function _getMeta() {
- return adminMeta;
- },
- _createReactChild: function _createReactChild(rEl, props, children) {
- return React.createElement(rEl, props, children);
- },
- _renderReact: function _renderReact(element, root) {
- ReactDOM.render(element, root);
- },
- readExtensions: function readExtensions() {
- return new Promise(function (resolve, reject) {
- this.glassContext.appController.findCollection('ibm.com.admin.AdminPanel').then(function (resp) {
- this.instantiateExtensions(resp).then(function () {
- return resolve();
- });
- }.bind(this), reject);
- }.bind(this));
- },
- setActionControllers: function setActionControllers(extensions, resolve) {
- var actionControllers = [];
- for (var index = 2; index < arguments.length; index += 1) {
- var actClass = extensions[index - 2].actionClass;
- actionControllers.push(new arguments[index][actClass](this.glassContext, StringResource));
- }
- AdminReact.AdminPanelUIStore.setPanelExtentions(actionControllers);
- resolve();
- },
- instantiateExtensions: function instantiateExtensions(resp) {
- var requireMods = [];
- var extensions = [];
- return new Promise(function (resolve) {
- if (resp) {
- resp.forEach(function (ext) {
- requireMods.push(ext.actionController);
- extensions.push(ext);
- }.bind(this));
- require(requireMods, this.setActionControllers.bind(this, extensions, resolve));
- } else {
- resolve();
- }
- }.bind(this));
- },
- getPlugins: function getPlugins(isSysAdmin, tenantID) {
- return PluginsDefinition.getPlugins(isSysAdmin, tenantID, this.glassContext, {});
- },
- render: function render() {
- this.readExtensions().then(function () {
- this.renderBody();
- }.bind(this));
- },
- renderBody: function renderBody() {
- //NOSONAR
- this.$el.addClass('bi-admin-entrance-pane');
- var adminPane = React.createElement(AdminReact.AdminPanel, {
- glassContext: this.glassContext,
- StringResource: StringResource,
- parent: this
- });
- ReactDOM.render(adminPane, this.$el[0]);
- return Promise.resolve();
- }
- });
- return AdminPane;
- });
|