"use strict"; /** * Licensed Materials - Property of IBM * IBM Cognos Products: admin * Copyright IBM Corp. 2018 * US Government Users Restricted Rights - Use, duplication or disclosure * restricted by GSA ADP Schedule Contract with IBM Corp. */ define(['underscore', 'bi/content_apps/PropertiesTab', 'bi/glass/app/ContentView', 'bi/admin/nls/StringResource', 'react-dom', 'react', 'mobx', 'ba-react-admin/ba-react-admin.min'], function (_, PropertiesTab, ContentView, StringResource, ReactDOM, React, mobx, AdminReact) { 'use strict'; //NOSONAR: meant to be strict var SignonMembersTab = ContentView.extend({ init: function init(options) { SignonMembersTab.inherited('init', this, arguments); _.extend(this, options); }, addMembers: function addMembers(membersList) { var defaultTypes = this.objectInfo.type === 'group' ? ['group', 'account'] : ['group', 'role', 'account']; this.membersList = membersList; this.addMemberSlideout = this.glassContext.appController.showSlideOut({ 'parent': this.slideout, 'width': "450px", 'content': { 'module': 'bi/admin/account/slideout/SecurityObjectSelectorPane', 'parentView': this, 'objectInfo': [this.objectInfo], 'allowedSelectionTypes': defaultTypes, 'multiSelectCallback': this.addSelection.bind(this), targetType: [] } }); }, addSelection: function addSelection(selectedItems) { var tempList = mobx.toJS(this.membersList); _.each(selectedItems, function (item) { var memberObject = { 'id': item.id, 'label': item.defaultName, 'searchPath': item.searchPath, 'type': item.objectClass }; tempList.push(memberObject); }.bind(this)); var uniqueList = _.uniq(tempList, function (item, key, a) { return item.label; }); this.membersList.replace(uniqueList); this.objectInfo.membersListObject = mobx.toJS(this.membersList); }, render: function render() { this.$el.addClass("reactSignonMemberList"); ReactDOM.unmountComponentAtNode(this.$el[0]); this.signonMemberList = React.createElement(AdminReact.SignonMemberList, { 'glassContext': this.glassContext, 'slideout': this.slideout, 'StringResource': StringResource, 'objectInfo': this.objectInfo, 'parent': this }); ReactDOM.render(this.signonMemberList, this.$el[0]); return Promise.resolve(); }, onClose: function onClose() { SignonMembersTab.inherited('onClose', this, arguments); ReactDOM.unmountComponentAtNode(this.$el[0]); this.signonMemberList = null; }, _getBlankHtml: function _getBlankHtml(members) { return '
' + '
' + '
' + StringResource.get(members + 'MemberMsg') + '
'; } }); return SignonMembersTab; });