1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- "use strict";
- /**
- * Licensed Materials - Property of IBM
- * IBM Cognos Products: Cognos Analytics
- * Copyright IBM Corp. 2015, 2018
- * US Government Users Restricted Rights - Use, duplication or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
- */
- define(['underscore', 'doT', 'bi/admin/common/ui/MagicWand', 'bi/commons/ui/AccessibleView', 'bi/admin/common/ui/listview/ListView', 'bi/admin/nls/StringResource', 'text!bi/admin/multitenancy/templates/TenantsMemberListTemplate.html', 'bi/admin/common/utils/AJAXUtils', 'bi/commons/utils/BidiUtil', 'bi/commons/utils/ContentFormatter', 'bi/admin/multitenancy/services/TenantsListAdapter', 'react', 'react-dom', 'ba-react-admin/ba-react-admin.min'], function (_, dot, MagicWand, View, ListView, StringResource, TenantsMemberListTemplate, AJAXUtils, BidiUtil, ContentFormatter, TenantsListAdapter, React, ReactDOM, AdminReact) {
- 'use strict'; //NOSONAR: meant to be strict
- var TenantsMemberList = View.extend({
- showBreadcrumbs: true,
- defaultTypes: ['tenant'],
- _breadCrumbs: null,
- listAdaptor: null,
- init: function init(options) {
- TenantsMemberList.inherited('init', this, arguments);
- this.glassContext = options.glassContext;
- this.parent = options.parent;
- this.includeToolbar = options.includeToolbar ? options.includeToolbar : false;
- this.filterPushed = false;
- this.filterStringValue = {
- 'tenant': true
- };
- },
- render: function render() {
- this.$el.append("<div ><div class='tenantAddMemberPaneRoot'/></div>");
- var tenantListView = React.createElement(AdminReact.TenantListView, {
- tenantController: this.tenantsController,
- glassContext: this.glassContext,
- StringResource: StringResource,
- parent: this,
- isAddMemebers: true
- });
- ReactDOM.render(tenantListView, this.$el.find('.tenantAddMemberPaneRoot')[0]);
- return Promise.resolve(this);
- },
- getSelectedObjects: function getSelectedObjects() {
- return this.listView.getSelectedObjects();
- },
- _getUniqueMembers: function _getUniqueMembers(selectedMembers) {
- var existingMembers = this.objectInfo[0].tenantMembers ? this.objectInfo[0].tenantMembers : [];
- var formattedMembers = _.map(existingMembers, function (member) {
- return member.tenantID;
- });
- if (selectedMembers) {
- _.each(selectedMembers, function (val, index) {
- var found = _.find(existingMembers, function (member) {
- return val.tenantID === member.tenantID;
- });
- if (!found) {
- formattedMembers.push(val.tenantID);
- }
- });
- }
- return formattedMembers;
- },
- _addMembers: function _addMembers(selectedMembers) {
- var tenant = this.objectInfo[0];
- return this.listController.getTenant(tenant.tenantID).then(function (data) {
- this.objectInfo = data.data;
- var membersObj = {
- "tenantMembers": this._getUniqueMembers(selectedMembers)
- };
- return this.listController.addTenantMembers(tenant.tenantID, membersObj);
- }.bind(this)).then(function () {
- return this.listController.getTenant(tenant.tenantID);
- }.bind(this), function (ajaxOptions, err) {
- this.glassContext.appController.showErrorMessage(AJAXUtils.buildErrorMessage(err.responseJSON.errors), StringResource.get('failToAddMember'));
- }.bind(this)).then(function (data) {
- this.objectInfo = data.data;
- this.glassContext.appController.showToast(StringResource.get('addMemberMsg'));
- return this.parentView.refresh();
- }.bind(this));
- },
- setFocus: function setFocus() {
- this.$el.find('.bi-admin-filterbar-leading input').focus();
- },
- _rowClickHandler: function _rowClickHandler(oData) {
- if (this.listAdaptor.rowClickHandler) {
- this.listAdaptor.rowClickHandler(this, oData);
- }
- }
- });
- return TenantsMemberList;
- });
|