"use strict"; /** * Licensed Materials - Property of IBM * IBM Cognos Products: Cognos Analytics * Copyright IBM Corp. 2018, 2018 * US Government Users Restricted Rights - Use, duplication or disclosure * restricted by GSA ADP Schedule Contract with IBM Corp. */ define(['underscore', 'bi/admin/common/slideout/BasePane', 'doT', 'bi/admin/nls/StringResource', 'text!bi/admin/common/templates/ManagePaneTemplate.html', '../../ba-graphics/dist/icons-js/user_32', '../../ba-graphics/dist/icons-js/email_32', '../../ba-graphics/dist/icons-js/capability_32', 'jquery'], function (_, BasePane, dot, StringResource, template, user32, email32, capability32, $) { /** * Sample content view that extends the glass AdminPane class * */ var PeoplePane = BasePane.extend({ init: function init(options) { PeoplePane.inherited('init', this, arguments); $.extend(this, options); this.moduleMap = { 'people_accounts': { 'moduleName': 'bi/admin/account/slideout/AccountListPane', 'size': '550px' }, 'people_capabilities': { 'moduleName': 'bi/admin/account/slideout/CapabilitiesListPane', 'size': '400px' }, 'people_contacts': { 'moduleName': 'bi/admin/account/slideout/ContactListPane', 'size': '350px' } }; }, _getMenuItems: function _getMenuItems() { var items = []; if (this._checkCapabilities('canUseUsersGroupsAndRolesTool')) { items.push({ id: 'people_accounts', title: StringResource.get('accounts'), description: StringResource.get('accountsDetail'), icon: user32.default.id }); } if (this.glassContext.isDevInstall() && this._checkCapabilities('canUseUsersGroupsAndRolesTool')) { items.push({ id: 'people_accounts_newlist', title: StringResource.get('accounts_newlist'), description: StringResource.get('accountsDetail_newlist'), icon: user32.default.id }); } if (this._checkCapabilities('canUseCapabilitiesTool')) { items.push({ id: 'people_capabilities', title: StringResource.get('capabilities'), description: StringResource.get('capabilitiesDetail'), icon: capability32.default.id }); } if (this._checkCapabilities('canUseDistributionListsAndContactsTool')) { items.push({ id: 'people_contacts', title: StringResource.get('contacts'), description: StringResource.get('contactsDetail'), icon: email32.default.id }); } return items; }, _checkCapabilities: function _checkCapabilities(capabilityName) { return _.find(this.glassContext.services.userProfile.capabilities, function (capability) { return capability === capabilityName; }); }, _buildSlideout: function _buildSlideout(id, title) { this.glassContext.appController.showSlideOut({ parent: this.slideout, overlay: true, width: this.moduleMap[id].size, label: title, content: { module: this.moduleMap[id].moduleName, title: title, showGobackButton: true } }); }, renderBody: function renderBody($body) { var $html = $(dot.template(template)({ 'items': this._getMenuItems() })); $body.html($html); $body.addClass('bi-admin-entrance-pane'); $body.find('.manage-sub-menu .adminentry').on('primaryaction', function (e) { if (this.slideout.child) { this.slideout.child.hide(); } var childTitle = $(e.currentTarget).attr('title'); if (this.glassContext.isDevInstall() && e.currentTarget.id === 'people_accounts_newlist') { this.glassContext.appController.openAppView('namespaces', {}); } else { this._buildSlideout(e.currentTarget.id, childTitle); } }.bind(this)); return Promise.resolve(); } }); return PeoplePane; });