Files
threshold-ui/ui/admin/app/templates/scopes/scope.hbs
T
Lisbet Alvarez b1b49edb39 Refactor hds side nav to hds app side nav and header (#3032)
* refactor: 💡 use hds app header and app side nav

* style: 💄 fix dark-mode colors for side nav and app header

* style: 💄 cleanup

* style: 💄 simplify selector

* refactor: 💡 move util (param finder) to core addon

* refactor: 💡 move scope picker to core addon

* refactor: 💡 use hds header and app side nav in ui/desktop

* refactor: 💡 clean up ui/desktop files

* refactor: 💡 remove uneeded header components

* refactor: 💡 remove uneeded global layout

* Add missing copyright headers

* style: 💄 adjust foreground and background colors to fix contras

* style: 💄 remove uneeded stylelint disables

* style: 💄 fix dark mode styling in desktop ui

* refactor: 💡 readd user-select style

* test: 💍 fix tests + e2e tests for admin and desktop UIs

* refactor: 💡 clean up uneeded main elements and fix color link

* Add missing copyright headers

* fix: 🐛 e2e test selectors for ui/desktop

* style: 💄 revert link color change

* refactor: 💡 remove hds override

* fix: 🐛 scope dropdown for desktop

* fix: 🐛 max-height to desktop scope dropdown

* Add missing copyright headers

* chore: 🤖 update lockfile due to webpack update
2026-02-25 13:55:36 -08:00

251 lines
6.4 KiB
Handlebars

{{!
Copyright IBM Corp. 2021, 2026
SPDX-License-Identifier: BUSL-1.1
}}
{{#if @model.isOrg}}
{{page-title (t 'resources.org.title_plural')}}
{{page-title @model.displayName}}
<Breadcrumbs::Item
@text={{@model.displayName}}
@icon='org'
@route='scopes.scope.edit'
@model={{@model.id}}
/>
{{/if}}
{{#if @model.isProject}}
{{page-title (t 'resources.org.title_plural')}}
{{page-title this.scope.org.displayName}}
{{page-title (t 'resources.project.title_plural')}}
{{page-title @model.displayName}}
<Breadcrumbs::Item
@text={{this.scope.org.displayName}}
@icon='org'
@route='scopes.scope.edit'
@model={{this.scope.org.id}}
/>
<Breadcrumbs::Item
@text={{@model.displayName}}
@icon='grid'
@route='scopes.scope.edit'
@model={{@model.id}}
/>
{{/if}}
<Hds::AppSideNav::Portal
@ariaLabel='Primary'
class='side-nav-dark-mode-overrides'
as |Nav|
>
{{#if @model.isGlobal}}
<Nav.Title>{{t 'titles.scope-level' scope=(t 'titles.global')}}</Nav.Title>
<Nav.Link
@icon='org'
@text={{t 'resources.org.title_plural'}}
@route='scopes.scope.scopes'
/>
{{#if (can 'navigate scope' @model collection='session-recordings')}}
<Nav.Link
@icon='film'
@text={{t 'resources.session-recording.title_plural'}}
@route='scopes.scope.session-recordings'
/>
{{/if}}
{{#if (can 'navigate scope' @model collection='storage-buckets')}}
<Nav.Link
@icon='cloud-upload'
@text={{t 'resources.storage-bucket.title_plural'}}
@route='scopes.scope.storage-buckets'
/>
{{/if}}
{{#if (can 'navigate scope' @model collection='policies')}}
<Nav.Link
@icon='hourglass'
@text={{t 'resources.policy.title_plural'}}
@route='scopes.scope.policies'
/>
{{/if}}
{{#if (can 'navigate scope' @model collection='aliases')}}
<Nav.Link
@icon='at-sign'
@text={{t 'resources.alias.title_plural'}}
@route='scopes.scope.aliases'
/>
{{/if}}
{{#if
(and
(can 'navigate worker' @model collection='workers')
(feature-flag 'byow')
)
}}
<Nav.Link
@icon='cpu'
@text={{t 'titles.workers'}}
@route='scopes.scope.workers'
/>
{{/if}}
<Nav.Title>{{t 'titles.scope-iam' scope=(t 'titles.global')}}</Nav.Title>
{{/if}}
{{#if @model.isOrg}}
{{#if this.session.data.authenticated.isGlobal}}
<Nav.BackLink
@text={{t 'titles.back-link' scope=(t 'titles.global')}}
@route='scopes.scope.scopes'
@model='global'
/>
{{/if}}
<Nav.Title>{{t
'titles.scope-level'
scope=(t 'resources.org.title')
}}</Nav.Title>
<Nav.Link
@icon='grid'
@text={{t 'resources.project.title_plural'}}
@route='scopes.scope.scopes'
/>
{{#if (can 'navigate scope' @model collection='policies')}}
<Nav.Link
@icon='hourglass'
@text={{t 'resources.policy.title_plural'}}
@route='scopes.scope.policies'
/>
{{/if}}
<Nav.Title>{{t
'titles.scope-iam'
scope=(t 'resources.org.title')
}}</Nav.Title>
{{/if}}
{{#if @model.isProject}}
<Nav.BackLink
@text={{t 'titles.back-link' scope=this.scope.org.displayName}}
@route='scopes.scope.scopes'
@model={{@model.scopeID}}
/>
<Nav.Title>{{t 'titles.project-actions'}}</Nav.Title>
{{#if (can 'navigate model' @model collection='targets')}}
<Nav.Link
@icon='target'
@text={{t 'resources.target.title_plural'}}
@route='scopes.scope.targets'
/>
{{/if}}
{{#if (can 'navigate model' @model collection='host-catalogs')}}
<Nav.Link
@icon='collections'
@text={{t 'resources.host-catalog.title_plural'}}
@route='scopes.scope.host-catalogs'
/>
{{/if}}
{{#if (can 'navigate model' @model collection='credential-stores')}}
<Nav.Link
@icon='key'
@text={{t 'resources.credential-store.title_plural'}}
@route='scopes.scope.credential-stores'
/>
{{/if}}
{{#if (can 'navigate model' @model collection='sessions')}}
<Nav.Link
@icon='entry-point'
@text={{t 'resources.session.title_plural'}}
@route='scopes.scope.sessions'
/>
{{/if}}
<Nav.Title>{{t
'titles.scope-iam'
scope=(t 'resources.project.title')
}}</Nav.Title>
{{/if}}
{{! Users are available only for org/global scopes }}
{{#unless @model.isProject}}
{{#if (can 'navigate model' @model collection='users')}}
<Nav.Link
@icon='users'
@text={{t 'resources.user.title_plural'}}
@route='scopes.scope.users'
/>
{{/if}}
{{/unless}}
{{! Groups and roles are available for all scopes }}
{{#if (can 'navigate model' @model collection='groups')}}
<Nav.Link
@icon='folder-users'
@text={{t 'resources.group.title_plural'}}
@route='scopes.scope.groups'
/>
{{/if}}
{{#if (can 'navigate model' @model collection='roles')}}
<Nav.Link
@icon='identity-user'
@text={{t 'resources.role.title_plural'}}
@route='scopes.scope.roles'
/>
{{/if}}
{{! Auth methods are available only for org/global scopes }}
{{#unless @model.isProject}}
{{#if (can 'navigate model' @model collection='auth-methods')}}
<Nav.Link
@icon='lock'
@text={{t 'resources.auth-method.title_plural'}}
@route='scopes.scope.auth-methods'
/>
{{/if}}
{{/unless}}
{{#if (and @model.isGlobal (feature-flag 'ssh-session-recording'))}}
{{#if this.session.data.authenticated.isGlobal}}
<Nav.Title>{{t 'titles.settings'}}</Nav.Title>
<Nav.Link
@icon='settings'
@text={{t 'resources.global.messages.settings.title'}}
@route='scopes.scope.edit'
/>
{{/if}}
{{/if}}
{{#if @model.isOrg}}
{{#if this.session.data.authenticated.isGlobal}}
<Nav.Title>{{t 'titles.settings'}}</Nav.Title>
<Nav.Link
@icon='settings'
@text={{t 'resources.org.messages.settings.title'}}
@route='scopes.scope.edit'
/>
{{/if}}
{{/if}}
{{#if @model.isProject}}
<Nav.Title>{{t 'titles.settings'}}</Nav.Title>
<Nav.Link
@icon='settings'
@text={{t 'resources.project.messages.settings.title'}}
@route='scopes.scope.edit'
/>
{{/if}}
</Hds::AppSideNav::Portal>
{{outlet}}