NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name AccessHub Navigation Shortcuts (on Steroids) // @namespace https://openuserjs.org/users/mato-meciar // @copyright 2024, mato-meciar (https://openuserjs.org/users/mato-meciar) // @version 0.10.2 // @description Don't waste time searching for navigation items in the burger menu // @author Martin Meciar (with help from P.K.) // @license MIT // @homepageURL https://github.com/mato-meciar/ah-scripts // @updateURL https://raw.githubusercontent.com/mato-meciar/ah-scripts/master/AccessHubNavigationShortcutsOnSteroids.js // @downloadURL https://raw.githubusercontent.com/mato-meciar/ah-scripts/master/AccessHubNavigationShortcutsOnSteroids.js // @supportURL https://github.com/mato-meciar/ah-scripts // @match https://*.idaccesshub.com/* // @match https://*.saviyntcloud.com/* // @grant none // @run-at document-body // ==/UserScript== // ==OpenUserJS== // @author mato-meciar // ==/OpenUserJS== const checkExist = function() { let navigationItems = document.getElementsByClassName('app_name')[0].children if (navigationItems.length > 0) { return true } else { return false } } let pageLoaded = setInterval(function() { if (checkExist()) { clearInterval(pageLoaded) setupNavigation() } }, 2000) const setupNavigation = function() { let style = document.createElement('style') style.setAttribute('type', 'text/css') style.innerHTML = `.nav-item {color: #646464;} .nav-item a {color: ${(location.hostname.includes('ibm.idaccesshub.com') || location.hostname.includes('ibm-support.saviyntcloud.com')) ? 'red' : '#646464;'}} .nav-item :hover {background-color: #cccccc;}` document.body.prepend(style) let navigationItems = document.getElementsByClassName('app_name')[0].children let space = document.createElement('div') space.innerHTML = '<p> </p>' navigationItems[2].append(space) let divider = document.createElement('div') divider.setAttribute('class', 'divider') divider.text = ' ' navigationItems[2].append(divider) let link = document.createElement('a') // let SODItem = document.createElement('div') // SODItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') // link.setAttribute('href', '/ECM/soddetail/sodmapped') // // link.setAttribute('class', 'link') // link.setAttribute('target', '_self') // link.text = 'SOD' // SODItem.append(link) // navigationItems[2].append(SODItem) // let revalidationItem = document.createElement('div') // revalidationItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') // link = document.createElement('a') // link.setAttribute('href', '/ECM/campaign/list?status=5') // // link.setAttribute('class', 'link') // link.setAttribute('target', '_self') // link.text = 'Revalidation' // revalidationItem.append(link) // navigationItems[2].append(revalidationItem) let analyticsItem = document.createElement('div') analyticsItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') //const textSize = '10px' //analyticsItem.setAttribute('style', `font-size: ${textSize};`) link = document.createElement('a') link.setAttribute('href', '/ECM/analyticsHistoryES/analyticsSummary') // link.setAttribute('class', 'link') link.setAttribute('target', '_self') link.text = 'Analytics' analyticsItem.append(link) navigationItems[2].append(analyticsItem) // let rolesItem = document.createElement('div') // rolesItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') // link = document.createElement('a') // link.setAttribute('href', '/ECM/user_GroupDetail/roleworkbenchinit') // // link.setAttribute('class', 'link') // link.setAttribute('target', '_self') // link.text = 'Roles' // rolesItem.append(link) // navigationItems[2].append(rolesItem) // if (document.location.hostname.includes('test') || document.location.hostname.includes('pprod')) { // let controlCenterItem = document.createElement('div') // controlCenterItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') // link = document.createElement('a') // link.setAttribute('href', '/ECM/controlCenter/home') // // link.setAttribute('class', 'link') // link.setAttribute('target', '_self') // link.text = 'Control Center' // controlCenterItem.append(link) // navigationItems[2].append(controlCenterItem) // } // let monitoringItem = document.createElement('div') // monitoringItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') // link = document.createElement('a') // link.setAttribute('href', '/ECM/dashboard/dashboardList?tab=4') // // link.setAttribute('class', 'link') // link.setAttribute('target', '_self') // link.text = 'Monitoring Dashboard' // monitoringItem.append(link) // navigationItems[2].append(monitoringItem) // let adminItem = document.createElement('div') // adminItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') // link = document.createElement('a') // link.setAttribute('href', '/ECM/securitysystems/list') // // link.setAttribute('class', 'link') // link.setAttribute('target', '_self') // link.text = 'Admin' // adminItem.append(link) // navigationItems[2].append(adminItem) let requestotherItem = document.createElement('div') requestotherItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') link = document.createElement('a') link.setAttribute('href', '/ECMv6/request/applicationRequest/manageRequestTeam') // link.setAttribute('class', 'link') link.setAttribute('target', '_self') link.text = 'Request For Other' requestotherItem.append(link) navigationItems[2].append(requestotherItem) let requestItem = document.createElement('div') requestItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') link = document.createElement('a') link.setAttribute('href', '/ECMv6/request/requestHistory?name=undefined&filter=eyJhcHBsaWVkRmlsdGVycyI6e30sImdsb2JhbFNlYXJjaFRleHQiOiIiLCJyZXFCb2R5T3B0aW9ucyI6eyJtYXgiOjI1LCJvZmZzZXQiOjAsImZpbmRieSI6IiJ9fQ==&findby=undefined') // link.setAttribute('class', 'link') link.setAttribute('target', '_self') link.text = 'Request History' requestItem.append(link) navigationItems[2].append(requestItem) let pendingapprovalsItem = document.createElement('div') pendingapprovalsItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') link = document.createElement('a') link.setAttribute('href', '/ECMv6/review/requestApproval?name=undefined&filter=eyJhcHBsaWVkRmlsdGVycyI6e30sImdsb2JhbFNlYXJjaFRleHQiOiIiLCJyZXFCb2R5T3B0aW9ucyI6eyJtYXgiOjI1LCJvZmZzZXQiOjAsImZpbmRieSI6IiIsInNvcnRjb2x1bW4iOiJyZXFJZCIsInNvcnRvcmRlciI6ImRlc2MifX0=&findby=undefined') // link.setAttribute('class', 'link') link.setAttribute('target', '_self') link.text = 'Pending Approvals' pendingapprovalsItem.append(link) navigationItems[2].append(pendingapprovalsItem) let pendingtasksItem = document.createElement('div') pendingtasksItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') link = document.createElement('a') link.setAttribute('href', '/ECM/workflowmanagement/pendingtasklist') // link.setAttribute('class', 'link') link.setAttribute('target', '_self') link.text = 'Pending Tasks' pendingtasksItem.append(link) navigationItems[2].append(pendingtasksItem) let completedItem = document.createElement('div') completedItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') link = document.createElement('a') link.setAttribute('href', '/ECM/workflowmanagement/completetasklist') // link.setAttribute('class', 'link') link.setAttribute('target', '_self') link.text = 'Completed Tasks ' completedItem.append(link) navigationItems[2].append(completedItem) let analyticscontItem = document.createElement('div') analyticscontItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') link = document.createElement('a') link.setAttribute('href', '/ECM/analyticsConfigES/list') // link.setAttribute('class', 'link') link.setAttribute('target', '_self') link.text = 'Analytics Configurations' analyticscontItem.append(link) navigationItems[2].append(analyticscontItem) let usersItem = document.createElement('div') usersItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') link = document.createElement('a') link.setAttribute('href', '/ECM/users/list') // link.setAttribute('class', 'link') link.setAttribute('target', '_self') link.text = 'Users' usersItem.append(link) navigationItems[2].append(usersItem) let accountsItem = document.createElement('div') accountsItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') link = document.createElement('a') link.setAttribute('href', '/ECM/accounts/list') // link.setAttribute('class', 'link') link.setAttribute('target', '_self') link.text = 'Accounts' accountsItem.append(link) navigationItems[2].append(accountsItem) let entitlementsItem = document.createElement('div') entitlementsItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') link = document.createElement('a') link.setAttribute('href', '/ECM/entitlement_values/list') // link.setAttribute('class', 'link') link.setAttribute('target', '_self') link.text = 'Entitlements' entitlementsItem.append(link) navigationItems[2].append(entitlementsItem) let usergroupItem = document.createElement('div') usergroupItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') link = document.createElement('a') link.setAttribute('href', '/ECM/user_GroupDetail/list') // link.setAttribute('class', 'link') link.setAttribute('target', '_self') link.text = 'User Group' usergroupItem.append(link) navigationItems[2].append(usergroupItem) let appservItem = document.createElement('div') appservItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') link = document.createElement('a') link.setAttribute('href', '/ECM/securitysystems/list') // link.setAttribute('class', 'link') link.setAttribute('target', '_self') link.text = 'Application / Server' appservItem.append(link) navigationItems[2].append(appservItem) let connectionsItem = document.createElement('div') connectionsItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') link = document.createElement('a') link.setAttribute('href', '/ECM/ecmConfig/externalconfig') // link.setAttribute('class', 'link') link.setAttribute('target', '_self') link.text = 'Connections' connectionsItem.append(link) navigationItems[2].append(connectionsItem) // let emailItem = document.createElement('div') // emailItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') // link = document.createElement('a') // link.setAttribute('href', '/ECM/ecmEmailTemplate/list') // // link.setAttribute('class', 'link') // link.setAttribute('target', '_self') // link.text = 'Email Templates' // emailItem.append(link) // navigationItems[2].append(emailItem) // let workflowItem = document.createElement('div') // workflowItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') // link = document.createElement('a') // link.setAttribute('href', '/ECM/jbpmworkflowmanagement/list') // // link.setAttribute('class', 'link') // link.setAttribute('target', '_self') // link.text = 'Workflow List ' // workflowItem.append(link) // navigationItems[2].append(workflowItem) let jobItem = document.createElement('div') jobItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') link = document.createElement('a') link.setAttribute('href', '/ECM/flatViewJobcontrol/flatViewJobList') // link.setAttribute('class', 'link') link.setAttribute('target', '_self') link.text = 'Job' jobItem.append(link) navigationItems[2].append(jobItem) let dataanalyzerItem = document.createElement('div') dataanalyzerItem.setAttribute('class', 'page-sequence displayName displayNameAlign nav-item') link = document.createElement('a') link.setAttribute('href', '/ECM/dataAnalyzer/index') // link.setAttribute('class', 'link') link.setAttribute('target', '_self') link.text = 'Data Analyzer ' dataanalyzerItem.append(link) navigationItems[2].append(dataanalyzerItem) }