"use strict"; (function () { 'use strict'; angular.module('myitsmApp').directive("gainsight", ['$window', 'metadataModel', 'gainsightModel', 'permissionModel', 'roles', function ($window, metadataModel, gainsightModel, permissionModel, roles) { return { restrict: "EA", link: function (scope) { metadataModel.getMetadataByType(EntityVO.TYPE_GLOBAL).then(function (res) { if (res.enableGainsight) { gainsightModel.getTelemetryConfiguration().then(function (config) { if (config.settings.enableGainsight && config.displayBanner) { gainsightModel.showOptinConfig(); } var tagKey = config.productTag; var userRole = !!permissionModel.hasPermission('admin:screenConfiguration') ? "Administrator" : ""; if (!userRole) { if (!!permissionModel.hasPermission(roles.ITSM_AGENT_ROLE) || !!permissionModel.hasPermission(roles.ITSM_CHANGE_USER_ROLE) || !!permissionModel.hasPermission(roles.ITSM_KNOWLEDGE_USER_ROLE) || !!permissionModel.hasPermission(roles.ITSM_PROBLEM_USER_ROLE) || !!permissionModel.hasPermission(roles.ITSM_ASSET_USER_ROLE) || !!permissionModel.hasPermission(roles.ITSM_ASSET_ADMIN_ROLE) || !!permissionModel.hasPermission(roles.ITSM_RELEASE_USER_ROLE) || !!permissionModel.hasPermission(roles.ITSM_SBE_USER_ROLE) || !!permissionModel.hasPermission(roles.ITSM_BROADCAST_USER_ROLE)) { userRole = "Agent"; } } var gainsightConfig = { application: { id: "SmartIT", productName: "Smart IT", productVersion: "22.1" }, user: { id: config.hashedUserId, globalId: config.hashedUserId, role: userRole, roles: { isAdmin: !!permissionModel.hasPermission('admin:screenConfiguration'), isKCSCoach: !!permissionModel.hasPermission(roles.ITSM_KCS_COACH_ROLE), isKBAdmin: !!permissionModel.hasPermission(roles.ITSM_ADMIN_ROLE), isAgent: !!permissionModel.hasPermission(roles.ITSM_AGENT_ROLE) || !!permissionModel.hasPermission(roles.ITSM_CHANGE_USER_ROLE) || !!permissionModel.hasPermission(roles.ITSM_KNOWLEDGE_USER_ROLE) || !!permissionModel.hasPermission(roles.ITSM_PROBLEM_USER_ROLE) || !!permissionModel.hasPermission(roles.ITSM_ASSET_USER_ROLE) || !!permissionModel.hasPermission(roles.ITSM_ASSET_ADMIN_ROLE) || !!permissionModel.hasPermission(roles.ITSM_RELEASE_USER_ROLE) || !!permissionModel.hasPermission(roles.ITSM_SBE_USER_ROLE) || !!permissionModel.hasPermission(roles.ITSM_BROADCAST_USER_ROLE) } } }; var productInfo = { productArea: { name: "SmartIT", version: '22.1.06', hosting: config.settings.deploymentType } }; var gainsightScriptUrl = "https://web-sdk.aptrinsic.com/api/aptrinsic.js"; if (config.settings.loadGainsightFromBmcIt) { gainsightScriptUrl = "https://documents.bmc.com/products/docs/gainsight/main/aptrinsic.js"; } //Load if globally switched on (function (global, doc, scriptUrl, accountId, configOptions) { var aptrinsic = "aptrinsic"; global[aptrinsic] = global[aptrinsic] || function () { (global[aptrinsic].q = global[aptrinsic].q || []).push(arguments); }; global[aptrinsic].p = accountId; global[aptrinsic].c = configOptions; var script = doc.createElement("script"); script.async = true; script.src = scriptUrl + "?a=" + accountId; var firstScript = doc.getElementsByTagName("script")[0]; firstScript.parentNode.insertBefore(script, firstScript); })(window, document, gainsightScriptUrl, tagKey); $window.aptrinsic('identify', gainsightConfig.user, gainsightConfig.application); $window.aptrinsic('set', 'globalContext', productInfo); }); } }); } }; }]); })();