update breadcrumbs to use hds::breadcrumbs (#1934)
* refactor: 💡 initial changes for updating breadcrumbs to use hds * refactor: 💡 add breadcrumbs to all paths * refactor: 💡 add more hds breadcrumbs to remaining paths * refactor: 💡 remove BreadCrumbs from templates * refactor: 💡 remove breadcrumb only controller files * test: 💍 remove unnused test files & add missing tests * test: 💍 update tests * test: 💍 add missing scope in test * test: 💍 fix test * refactor: 💡 remove icons * refactor: 💡 remove addon and use service instead * docs: ✏️ add comment to breadcrumb service * test: 💍 update service unit test * docs: ✏️ add comments to breadcrumb components * Update ui/admin/app/components/breadcrumbs/container/index.js Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com> --------- Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
This commit is contained in:
1 parent
0bf5221389
commit
a20483d1af
261 files changed
+827
-2884
No files matched your search
@@ -828,6 +828,8 @@ scope:
|
||||
managed-group:
|
||||
title: Managed Group
|
||||
title_plural: Managed Groups
|
||||
titles:
|
||||
new: New Managed Group
|
||||
description: A managed group represents a collection of accounts.
|
||||
actions:
|
||||
delete: Delete Managed Group
|
||||
@@ -848,8 +850,9 @@ managed-group:
|
||||
help: The list of groups that this Managed Group belongs to.
|
||||
worker:
|
||||
title: Worker
|
||||
title_pki: New PKI Worker
|
||||
title_plural: Workers
|
||||
titles:
|
||||
new: New PKI Worker
|
||||
description: Workers are the server components that perform the session handling.
|
||||
actions:
|
||||
register: Register Worker
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
{{!
|
||||
Copyright (c) HashiCorp, Inc.
|
||||
SPDX-License-Identifier: MPL-2.0
|
||||
}}
|
||||
|
||||
<Rose::Nav::Breadcrumbs as |crumbs|>
|
||||
|
||||
{{#if this.scope.org}}
|
||||
{{#unless this.scope.org.isGlobal}}
|
||||
{{#if this.session.data.authenticated.isGlobal}}
|
||||
<crumbs.link @route='scopes.scope.scopes' @model='global'>
|
||||
{{t 'resources.org.title_plural'}}
|
||||
</crumbs.link>
|
||||
<crumbs.link @route='scopes.scope.edit' @model={{this.scope.org.id}}>
|
||||
{{this.scope.org.displayName}}
|
||||
</crumbs.link>
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
|
||||
{{#if this.scope.project}}
|
||||
<crumbs.link @route='scopes.scope.scopes' @model={{this.scope.org.id}}>
|
||||
{{t 'resources.project.title_plural'}}
|
||||
</crumbs.link>
|
||||
<crumbs.link @route='scopes.scope.edit' @model={{this.scope.project.id}}>
|
||||
{{this.scope.project.displayName}}
|
||||
</crumbs.link>
|
||||
{{/if}}
|
||||
|
||||
{{#each this.breadCrumbs as |crumb|}}
|
||||
{{#if crumb.model}}
|
||||
<crumbs.link @route={{crumb.path}} @model={{crumb.model}}>
|
||||
{{crumb.label}}
|
||||
</crumbs.link>
|
||||
{{else}}
|
||||
<crumbs.link @route={{crumb.path}}>
|
||||
{{crumb.label}}
|
||||
</crumbs.link>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
|
||||
</Rose::Nav::Breadcrumbs>
|
||||
@@ -1,118 +0,0 @@
|
||||
import Component from '@glimmer/component';
|
||||
import EmberObject, { computed, get } from '@ember/object';
|
||||
import { inject as service } from '@ember/service';
|
||||
import { isBlank, isPresent } from '@ember/utils';
|
||||
import { A } from '@ember/array';
|
||||
|
||||
// This component copies and modifies source from ember-breadcrumbs 0.2.3,
|
||||
// updating it for Ember v4 compatibility.
|
||||
|
||||
// The original copyright is below.
|
||||
|
||||
/*
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014-2019 Chris Farber
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
|
||||
export default class BreadcrumbsComponent extends Component {
|
||||
// =services
|
||||
|
||||
@service session;
|
||||
@service scope;
|
||||
@service router;
|
||||
|
||||
// =properties
|
||||
|
||||
/* eslint-disable-next-line ember/require-computed-property-dependencies */
|
||||
@computed('router.currentRouteName')
|
||||
get routeInfos() {
|
||||
/* eslint-disable-next-line ember/no-private-routing-service */
|
||||
return this.router._router._routerMicrolib.currentRouteInfos;
|
||||
}
|
||||
|
||||
/*
|
||||
For the pathNames and controllers properties, we must be careful not to NOT
|
||||
specify the properties of the route in our dependent keys.
|
||||
|
||||
Observing the controller property of the route causes some serious problems:
|
||||
https://github.com/chrisfarber/ember-breadcrumbs/issues/21
|
||||
*/
|
||||
|
||||
@computed('routeInfos.[]')
|
||||
get pathNames() {
|
||||
return this.routeInfos.map(function (routeInfo) {
|
||||
return routeInfo.name;
|
||||
});
|
||||
}
|
||||
|
||||
@computed('routeInfos.[]')
|
||||
get controllers() {
|
||||
return this.routeInfos.map(function (routeInfo) {
|
||||
var route = routeInfo.route || routeInfo.handler;
|
||||
return route.controller;
|
||||
});
|
||||
}
|
||||
|
||||
@computed(
|
||||
'controllers.@each.{breadCrumbs,breadCrumb,breadCrumbPath,breadCrumbModel}',
|
||||
'pathNames.[]'
|
||||
)
|
||||
get breadCrumbs() {
|
||||
var controllers = this.controllers;
|
||||
var defaultPaths = this.pathNames;
|
||||
var breadCrumbs = A([]);
|
||||
|
||||
controllers.forEach(function (controller, index) {
|
||||
var crumbs = controller.breadCrumbs || A([]);
|
||||
var singleCrumb = controller.breadCrumb;
|
||||
|
||||
if (!isBlank(singleCrumb)) {
|
||||
crumbs.push({
|
||||
label: singleCrumb,
|
||||
path: controller.breadCrumbPath,
|
||||
model: controller.breadCrumbModel,
|
||||
});
|
||||
}
|
||||
|
||||
crumbs.forEach(function (crumb) {
|
||||
breadCrumbs.addObject(
|
||||
EmberObject.create({
|
||||
label: crumb.label,
|
||||
path: crumb.path || defaultPaths[index],
|
||||
model: crumb.model,
|
||||
linkable: isPresent(crumb.linkable)
|
||||
? crumb.linkable
|
||||
: crumb.path !== false,
|
||||
isCurrent: false,
|
||||
})
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
var deepestCrumb = get(breadCrumbs, 'lastObject');
|
||||
if (deepestCrumb) {
|
||||
deepestCrumb.isCurrent = true;
|
||||
}
|
||||
|
||||
return breadCrumbs;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
<Hds::Breadcrumb
|
||||
...attributes
|
||||
data-test-breadcrumbs-container
|
||||
{{did-insert this.registerContainer}}
|
||||
>
|
||||
{{yield}}
|
||||
</Hds::Breadcrumb>
|
||||
@@ -0,0 +1,32 @@
|
||||
import Component from '@glimmer/component';
|
||||
import { inject as service } from '@ember/service';
|
||||
import { action } from '@ember/object';
|
||||
|
||||
/*
|
||||
The `containers` property from the `breadcrumbsService` is tracked
|
||||
so registering or unregistering a container will cause the DOM
|
||||
to re-render a container with the correct breadcrumbs.
|
||||
*/
|
||||
|
||||
export default class BreadcrumbsContainerComponent extends Component {
|
||||
@service('breadcrumbs') breadcrumbsService;
|
||||
|
||||
container = null;
|
||||
|
||||
@action
|
||||
registerContainer(element) {
|
||||
// A child `ol` is rendered in the Hds::Breadcrumb container and this is
|
||||
// the element that the in-element helper should drop breadcrumbs into.
|
||||
this.container = {
|
||||
element: element.querySelector('ol'),
|
||||
};
|
||||
|
||||
this.breadcrumbsService.registerContainer(this.container);
|
||||
}
|
||||
|
||||
willDestroy() {
|
||||
super.willDestroy(...arguments);
|
||||
|
||||
this.breadcrumbsService.unregisterContainer(this.container);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{{#each this.breadcrumbsService.containers as |container|}}
|
||||
{{#in-element container.element insertBefore=null}}
|
||||
<Hds::Breadcrumb::Item
|
||||
@text={{@text}}
|
||||
@icon={{@icon}}
|
||||
@route={{@route}}
|
||||
@models={{@models}}
|
||||
@query={{@query}}
|
||||
@model={{@model}}
|
||||
@current={{this.current}}
|
||||
...attributes
|
||||
{{did-insert this.registerSelf}}
|
||||
data-test-breadcrumbs-item
|
||||
/>
|
||||
{{/in-element}}
|
||||
{{/each}}
|
||||
@@ -0,0 +1,26 @@
|
||||
import Component from '@glimmer/component';
|
||||
import { inject as service } from '@ember/service';
|
||||
import { action } from '@ember/object';
|
||||
import { tracked } from '@glimmer/tracking';
|
||||
|
||||
/*
|
||||
`BreadcrumbsItem` inserts the crumbs to an existing container.
|
||||
For our purposes, there will always be at most one container.
|
||||
*/
|
||||
|
||||
export default class BreadcrumbsItemComponent extends Component {
|
||||
@service('breadcrumbs') breadcrumbsService;
|
||||
|
||||
@tracked element = null;
|
||||
|
||||
@action
|
||||
registerSelf(element) {
|
||||
this.element = element;
|
||||
}
|
||||
|
||||
get current() {
|
||||
const crumbs = this.breadcrumbsService.containers[0].element.children;
|
||||
const lastCrumb = crumbs[crumbs.length - 1];
|
||||
return lastCrumb.isEqualNode(this.element);
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeAuthMethodsController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated auth-methods breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.auth-method.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default class ScopesScopeAuthMethodsAuthMethodController extends Controller {
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* An auth-method breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.model.displayName;
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeAuthMethodsAuthMethodAccountsController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated accounts breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.account.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default class ScopesScopeAuthMethodsAuthMethodAccountsAccountController extends Controller {
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* An account breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.model.displayName;
|
||||
}
|
||||
}
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeAuthMethodsAuthMethodAccountsAccountSetPasswordController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated users breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('actions.set-password');
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeAuthMethodsAuthMethodAccountsNewController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated new account breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.account.titles.new');
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeAuthMethodsAuthMethodManagedGroupsController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated managed groups breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.managed-group.title_plural');
|
||||
}
|
||||
}
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default class ScopesScopeAuthMethodsAuthMethodManagedGroupsManagedGroupController extends Controller {
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* A managed group breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.model.displayName;
|
||||
}
|
||||
}
|
||||
-22
@@ -1,22 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeAuthMethodsAuthMethodManagedGroupsManagedGroupMembersController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
/**
|
||||
* Translated new managed group breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.managed-group.member.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeAuthMethodsAuthMethodManagedGroupsNewController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated new account breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('titles.new');
|
||||
}
|
||||
}
|
||||
@@ -4,22 +4,11 @@
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeAuthMethodsNewController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
queryParams = ['type'];
|
||||
|
||||
/**
|
||||
* Translated new auth-method breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.auth-method.titles.new');
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeCredentialStoresController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// = attributes
|
||||
/**
|
||||
* Translated breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.credential-store.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default class ScopesScopeCredentialStoresCredentialStoreController extends Controller {
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* A credential store breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.model.displayName;
|
||||
}
|
||||
}
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeCredentialStoresCredentialStoreCredentialLibrariesController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated credential libraries breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.credential-library.title_plural');
|
||||
}
|
||||
}
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default class ScopesScopeCredentialStoresCredentialStoreCredentialLibrariesCredentialLibraryController extends Controller {
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* A model breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.model.displayName;
|
||||
}
|
||||
}
|
||||
-11
@@ -4,21 +4,10 @@
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeCredentialStoresCredentialStoreCredentialLibrariesNewController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
queryParams = ['type'];
|
||||
|
||||
/**
|
||||
* Translated new credential libraries breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.credential-library.titles.new');
|
||||
}
|
||||
}
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeCredentialStoresCredentialStoreCredentialsController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated credential breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.credential.title_plural');
|
||||
}
|
||||
}
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default class ScopesScopeCredentialStoresCredentialStoreCredentialsCredentialController extends Controller {
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* A model breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.model.displayName;
|
||||
}
|
||||
}
|
||||
-11
@@ -4,22 +4,11 @@
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeCredentialStoresCredentialStoreCredentialsNewController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
queryParams = ['type'];
|
||||
|
||||
/**
|
||||
* Translated new credentials breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.credential.titles.new');
|
||||
}
|
||||
}
|
||||
@@ -4,20 +4,10 @@
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeCredentialStoresNewController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
queryParams = ['type'];
|
||||
/**
|
||||
* Breadcrumb for new route
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.credential-store.titles.new');
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeGroupsController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated groups breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.group.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default class ScopesScopeGroupsGroupController extends Controller {
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* A group breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.model.displayName;
|
||||
}
|
||||
}
|
||||
@@ -4,23 +4,12 @@
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeGroupsGroupAddMembersController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated new group breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.group.messages.add-members.title');
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a flat array of scopes, sorted and "grouped by" parent scope,
|
||||
* beginning with global.
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeGroupsGroupMembersController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated users breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.group.messages.members.title');
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeGroupsNewController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated new group breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.group.titles.new');
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeHostCatalogsController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated roles breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.host-catalog.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default class ScopesScopeHostCatalogsHostCatalogController extends Controller {
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* A role breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.model.displayName;
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeHostCatalogsHostCatalogHostSetsController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated roles breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.host-set.title_plural');
|
||||
}
|
||||
}
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default class ScopesScopeHostCatalogsHostCatalogHostSetsHostSetController extends Controller {
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* A role breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.model.displayName;
|
||||
}
|
||||
}
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeHostCatalogsHostCatalogHostSetsHostSetAddHostsController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated roles breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.host-set.actions.add-hosts');
|
||||
}
|
||||
}
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeHostCatalogsHostCatalogHostSetsHostSetCreateAndAddHostController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated roles breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.host-set.actions.create-and-add-host');
|
||||
}
|
||||
}
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeHostCatalogsHostCatalogHostSetsHostSetHostsController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated roles breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.host.title_plural');
|
||||
}
|
||||
}
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default class ScopesScopeHostCatalogsHostCatalogHostSetsHostSetHostsHostController extends Controller {
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* A role breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.model.displayName;
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeHostCatalogsHostCatalogHostSetsNewController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated roles breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.host-set.titles.new');
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeHostCatalogsHostCatalogHostsController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated roles breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.host.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default class ScopesScopeHostCatalogsHostCatalogHostsHostController extends Controller {
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* A role breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.model.displayName;
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeHostCatalogsHostCatalogHostsNewController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated roles breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.host.titles.new');
|
||||
}
|
||||
}
|
||||
@@ -4,22 +4,11 @@
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeHostCatalogsNewController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
queryParams = ['type'];
|
||||
|
||||
/**
|
||||
* Translated roles breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.host-catalog.titles.new');
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeRolesController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated roles breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.role.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeRolesNewController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated new role breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.role.titles.new');
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default class ScopesScopeRolesRoleController extends Controller {
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* A role breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.model.displayName;
|
||||
}
|
||||
}
|
||||
@@ -4,23 +4,12 @@
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeRolesRoleAddPrincipalsController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated roles breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.role.principal.actions.add-principals');
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a flat array of scopes, sorted and "grouped by" parent scope,
|
||||
* beginning with global.
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeRolesRoleGrantsController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated users breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.role.grant.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeRolesRolePrincipalsController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated users breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.role.principal.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
import { computed } from '@ember/object';
|
||||
|
||||
export default class ScopesScopeScopesController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* @type {string}
|
||||
*/
|
||||
@computed('intl', 'model.currentScope.{isGlobal,isOrg}')
|
||||
get breadCrumb() {
|
||||
if (this.model.currentScope.isGlobal) {
|
||||
return this.intl.t('resources.org.title_plural');
|
||||
}
|
||||
/* istanbul ignore else */
|
||||
if (this.model.currentScope.isOrg) {
|
||||
return this.intl.t('resources.project.title_plural');
|
||||
}
|
||||
/* istanbul ignore next */
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
import { computed } from '@ember/object';
|
||||
|
||||
export default class ScopesScopeScopesNewController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* @type {string}
|
||||
*/
|
||||
@computed('intl', 'model.{currentScope,isOrg,isProject}')
|
||||
get breadCrumb() {
|
||||
if (this.model.isOrg) {
|
||||
return this.intl.t('resources.org.titles.new');
|
||||
}
|
||||
/* istanbul ignore else */
|
||||
if (this.model.isProject) {
|
||||
return this.intl.t('resources.project.titles.new');
|
||||
}
|
||||
/* istanbul ignore next */
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeSessionRecordingsController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
//= attributes
|
||||
/**
|
||||
* Translated breadcrumb
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.session-recording.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeSessionRecordingsSessionRecordingController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
/**
|
||||
* Session recording breadcrumb
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.model.displayName;
|
||||
}
|
||||
}
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeSessionRecordingsSessionRecordingChannelsByConnectionController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
/**
|
||||
* Translated breadcrumb
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t(
|
||||
'resources.session-recording.channels-by-connection.title'
|
||||
);
|
||||
}
|
||||
}
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
import { reverseIndexedDisplayName } from 'core/helpers/reverse-indexed-display-name';
|
||||
|
||||
export default class ScopesScopeSessionRecordingsSessionRecordingChannelsByConnectionChannelController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
/**
|
||||
* Session recording channel breadcrumb
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return reverseIndexedDisplayName(
|
||||
this.intl,
|
||||
'resources.session-recording.channel.title_index',
|
||||
this.model.channelRecording.connection_recording.channel_recordings,
|
||||
this.model.channelRecording
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeSessionsController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated roles breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.session.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeStorageBucketsController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// = attributes
|
||||
/**
|
||||
* Translated breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.storage-bucket.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeStorageBucketsNewController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
/**
|
||||
* Breadcrumb for new route
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.storage-bucket.titles.new');
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default class ScopesScopeStorageBucketsStorageBucketController extends Controller {
|
||||
// =attributes
|
||||
/**
|
||||
* A storage-bucket breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.model.displayName;
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeTargetsController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated roles breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.target.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -4,24 +4,11 @@
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeTargetsNewController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
queryParams = ['type'];
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated roles breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.target.titles.new');
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default class ScopesScopeTargetsTargetController extends Controller {
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* An user breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.model.displayName;
|
||||
}
|
||||
}
|
||||
-13
@@ -4,13 +4,10 @@
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeTargetsTargetAddBrokeredCredentialSourcesController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
@@ -41,14 +38,4 @@ export default class ScopesScopeTargetsTargetAddBrokeredCredentialSourcesControl
|
||||
);
|
||||
return [...notAddedCredentialLibraries, ...notAddedCredentials];
|
||||
}
|
||||
|
||||
/**
|
||||
* Translated roles breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t(
|
||||
'resources.target.actions.add-brokered-credential-sources'
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeTargetsTargetAddHostSourcesController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated roles breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.target.actions.add-host-sources');
|
||||
}
|
||||
}
|
||||
-13
@@ -4,13 +4,10 @@
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeTargetsTargetAddInjectedApplicationCredentialSourcesController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
@@ -40,14 +37,4 @@ export default class ScopesScopeTargetsTargetAddInjectedApplicationCredentialSou
|
||||
);
|
||||
return [...notAddedCredentialLibraries, ...notAddedCredentials];
|
||||
}
|
||||
|
||||
/**
|
||||
* Translated roles breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t(
|
||||
'resources.target.actions.add-injected-application-credential-sources'
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeTargetsTargetBrokeredCredentialSourcesController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated credential library breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t(
|
||||
'resources.target.brokered-credential-source.title_plural'
|
||||
);
|
||||
}
|
||||
}
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default class ScopesScopeTargetsTargetEnableSessionRecordingCreateStorageBucketController extends Controller {
|
||||
// =services
|
||||
}
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeTargetsTargetEnableSessionRecordingController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated enable session recording breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.target.enable-session-recording.title');
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeTargetsTargetHostSourcesController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated roles breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.target.host-source.title_plural');
|
||||
}
|
||||
}
|
||||
-25
@@ -1,25 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeTargetsTargetInjectedApplicationCredentialSourcesController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated credential library breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t(
|
||||
'resources.target.injected-application-credential-source.title_plural'
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeUsersController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated users breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.user.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeUsersNewController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated new user breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.user.titles.new');
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default class ScopesScopeUsersUserController extends Controller {
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* An user breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.model.displayName;
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeUsersUserAccountsController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated users breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.account.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeUsersUserAddAccountsController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.user.messages.add-accounts.title');
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeWorkersController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated workers breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.worker.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default class ScopesScopeWorkersNewController extends Controller {
|
||||
// =services
|
||||
|
||||
@service intl;
|
||||
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* Translated new worker breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('titles.new');
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default class ScopesScopeWorkersWorkerController extends Controller {
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* A worker breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.model.displayName;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
/**
|
||||
* Copyright (c) HashiCorp, Inc.
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
|
||||
import Route from '@ember/routing/route';
|
||||
import { inject as service } from '@ember/service';
|
||||
import { action } from '@ember/object';
|
||||
|
||||
export default class ScopesScopeTargetsTargetEnableSessionRecordingRoute extends Route {
|
||||
// =services
|
||||
@service store;
|
||||
@service router;
|
||||
|
||||
// =methods
|
||||
|
||||
/**
|
||||
* Returns the current target
|
||||
* @return {TargetModel}
|
||||
*/
|
||||
|
||||
model() {
|
||||
return this.modelFor('scopes.scope.targets.target');
|
||||
}
|
||||
|
||||
// =actions
|
||||
/**
|
||||
* Reset the selected storage bucket and redirect to target
|
||||
* @param {TargetModel} target
|
||||
*/
|
||||
@action
|
||||
cancel(target) {
|
||||
const { id } = target;
|
||||
target.rollbackAttributes();
|
||||
this.router.replaceWith('scopes.scope.targets.target', id);
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
import Route from '@ember/routing/route';
|
||||
import { inject as service } from '@ember/service';
|
||||
import { action } from '@ember/object';
|
||||
|
||||
export default class ScopesScopeTargetsTargetEnableSessionRecordingIndexRoute extends Route {
|
||||
// =services
|
||||
@@ -14,15 +13,6 @@ export default class ScopesScopeTargetsTargetEnableSessionRecordingIndexRoute ex
|
||||
|
||||
// =methods
|
||||
|
||||
/**
|
||||
* Returns the current target
|
||||
* @return {TargetModel}
|
||||
*/
|
||||
|
||||
model() {
|
||||
return this.modelFor('scopes.scope.targets.target');
|
||||
}
|
||||
|
||||
/**
|
||||
* Load storage buckets from target's parent's scope and global scope
|
||||
* @param {Model} model
|
||||
@@ -46,18 +36,6 @@ export default class ScopesScopeTargetsTargetEnableSessionRecordingIndexRoute ex
|
||||
];
|
||||
this.storageBucketList = storageBucketList;
|
||||
}
|
||||
// =actions
|
||||
|
||||
/**
|
||||
* Reset the selected storage bucket and redirect to target
|
||||
* @param {TargetModel} target
|
||||
*/
|
||||
@action
|
||||
cancel(target) {
|
||||
const { id } = target;
|
||||
target.rollbackAttributes();
|
||||
this.router.replaceWith('scopes.scope.targets.target', id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds `storageBucketList` to the context.
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
import Service from '@ember/service';
|
||||
import { tracked } from '@glimmer/tracking';
|
||||
import { assert } from '@ember/debug';
|
||||
|
||||
// This service copies source code from @Bagaar/ember-breadcrumbs v4.1.0
|
||||
// The original copyright is below.
|
||||
/*
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2021
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
export default class BreadcrumbsService extends Service {
|
||||
@tracked containers = [];
|
||||
#containers = [];
|
||||
|
||||
registerContainer(container) {
|
||||
assert(
|
||||
'A breadcrumb container with the same DOM element has already been registered before.',
|
||||
!this.#isContainerRegistered(container)
|
||||
);
|
||||
this.#containers = [...this.#containers, container];
|
||||
this.containers = this.#containers;
|
||||
}
|
||||
|
||||
unregisterContainer(container) {
|
||||
assert(
|
||||
'No breadcrumb container was found with this DOM element.',
|
||||
this.#isContainerRegistered(container)
|
||||
);
|
||||
|
||||
this.#containers = this.#containers.filter((registeredContainer) => {
|
||||
return container.element !== registeredContainer.element;
|
||||
});
|
||||
|
||||
this.containers = this.#containers;
|
||||
}
|
||||
|
||||
#isContainerRegistered(container) {
|
||||
return this.#containers.some((registeredContainer) => {
|
||||
return container.element === registeredContainer.element;
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,12 @@
|
||||
{{#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}}
|
||||
@@ -13,6 +19,18 @@
|
||||
{{page-title this.scopes.selectedOrg.displayName}}
|
||||
{{page-title (t 'resources.project.title_plural')}}
|
||||
{{page-title @model.displayName}}
|
||||
<Breadcrumbs::Item
|
||||
@text={{this.scopes.selectedOrg.displayName}}
|
||||
@icon='org'
|
||||
@route='scopes.scope.edit'
|
||||
@model={{this.scopes.selectedOrg.id}}
|
||||
/>
|
||||
<Breadcrumbs::Item
|
||||
@text={{@model.displayName}}
|
||||
@icon='grid'
|
||||
@route='scopes.scope.edit'
|
||||
@model={{@model.id}}
|
||||
/>
|
||||
{{/if}}
|
||||
|
||||
<Rose::Layout::Sidebar as |sidebarLayout|>
|
||||
@@ -98,10 +116,7 @@
|
||||
{{/if}}
|
||||
{{#if (can 'navigate model' @model collection='targets')}}
|
||||
<nav.link @route='scopes.scope.targets'>
|
||||
<Rose::Icon
|
||||
@name='flight-icons/svg/crosshair-16'
|
||||
@size='medium'
|
||||
/>
|
||||
<Rose::Icon @name='flight-icons/svg/target-16' @size='medium' />
|
||||
{{t 'resources.target.title_plural'}}
|
||||
</nav.link>
|
||||
{{/if}}
|
||||
|
||||
@@ -4,5 +4,9 @@
|
||||
}}
|
||||
|
||||
{{page-title (t 'resources.auth-method.title_plural')}}
|
||||
<Breadcrumbs::Item
|
||||
@text={{t 'resources.auth-method.title_plural'}}
|
||||
@route='scopes.scope.auth-methods'
|
||||
/>
|
||||
|
||||
{{outlet}}
|
||||
@@ -4,5 +4,10 @@
|
||||
}}
|
||||
|
||||
{{page-title @model.displayName}}
|
||||
<Breadcrumbs::Item
|
||||
@text={{@model.displayName}}
|
||||
@route='scopes.scope.auth-methods.auth-method'
|
||||
@model={{@model}}
|
||||
/>
|
||||
|
||||
{{outlet}}
|
||||
@@ -0,0 +1,12 @@
|
||||
{{!
|
||||
Copyright (c) HashiCorp, Inc.
|
||||
SPDX-License-Identifier: MPL-2.0
|
||||
}}
|
||||
|
||||
{{page-title (t 'resources.account.title_plural')}}
|
||||
<Breadcrumbs::Item
|
||||
@text={{t 'resources.account.title_plural'}}
|
||||
@route='scopes.scope.auth-methods.auth-method.accounts'
|
||||
/>
|
||||
|
||||
{{outlet}}
|
||||
@@ -4,5 +4,10 @@
|
||||
}}
|
||||
|
||||
{{page-title @model.displayName}}
|
||||
<Breadcrumbs::Item
|
||||
@text={{@model.displayName}}
|
||||
@route='scopes.scope.auth-methods.auth-method.accounts.account'
|
||||
@model={{@model}}
|
||||
/>
|
||||
|
||||
{{outlet}}
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
<Rose::Layout::Page as |page|>
|
||||
|
||||
<page.breadcrumbs>
|
||||
<BreadCrumbs />
|
||||
<Breadcrumbs::Container />
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
|
||||
+5
-1
@@ -4,11 +4,15 @@
|
||||
}}
|
||||
|
||||
{{page-title (t 'actions.set-password')}}
|
||||
<Breadcrumbs::Item
|
||||
@text={{t 'actions.set-password'}}
|
||||
@route='scopes.scope.auth-methods.auth-method.accounts.account.set-password'
|
||||
/>
|
||||
|
||||
<Rose::Layout::Page as |page|>
|
||||
|
||||
<page.breadcrumbs>
|
||||
<BreadCrumbs />
|
||||
<Breadcrumbs::Container />
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<Rose::Layout::Page as |page|>
|
||||
|
||||
<page.breadcrumbs>
|
||||
<BreadCrumbs />
|
||||
<Breadcrumbs::Container />
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
|
||||
@@ -3,10 +3,16 @@
|
||||
SPDX-License-Identifier: MPL-2.0
|
||||
}}
|
||||
|
||||
{{page-title (t 'titles.new')}}
|
||||
<Breadcrumbs::Item
|
||||
@text={{t 'resources.account.titles.new'}}
|
||||
@route='scopes.scope.auth-methods.auth-method.accounts.new'
|
||||
/>
|
||||
|
||||
<Rose::Layout::Page as |page|>
|
||||
|
||||
<page.breadcrumbs>
|
||||
<BreadCrumbs />
|
||||
<Breadcrumbs::Container />
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
@@ -14,7 +20,7 @@
|
||||
{{t 'resources.account.titles.new'}}
|
||||
<DocLink @doc='account.new' @iconSize='large' />
|
||||
</h2>
|
||||
<p>{{t 'resources.auth-method.description'}}</p>
|
||||
<p>{{t 'resources.account.description'}}</p>
|
||||
</page.header>
|
||||
|
||||
<page.body>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<Rose::Layout::Page as |page|>
|
||||
|
||||
<page.breadcrumbs>
|
||||
<BreadCrumbs />
|
||||
<Breadcrumbs::Container />
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
|
||||
@@ -4,5 +4,9 @@
|
||||
}}
|
||||
|
||||
{{page-title (t 'resources.managed-group.title_plural')}}
|
||||
<Breadcrumbs::Item
|
||||
@text={{t 'resources.managed-group.title_plural'}}
|
||||
@route='scopes.scope.auth-methods.auth-method.managed-groups'
|
||||
/>
|
||||
|
||||
{{outlet}}
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
<Rose::Layout::Page as |page|>
|
||||
|
||||
<page.breadcrumbs>
|
||||
<BreadCrumbs />
|
||||
<Breadcrumbs::Container />
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
|
||||
+6
@@ -4,4 +4,10 @@
|
||||
}}
|
||||
|
||||
{{page-title @model.displayName}}
|
||||
<Breadcrumbs::Item
|
||||
@text={{@model.displayName}}
|
||||
@route='scopes.scope.auth-methods.auth-method.managed-groups.managed-group'
|
||||
@model={{@model}}
|
||||
/>
|
||||
|
||||
{{outlet}}
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
<Rose::Layout::Page as |page|>
|
||||
|
||||
<page.breadcrumbs>
|
||||
<BreadCrumbs />
|
||||
<Breadcrumbs::Container />
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
|
||||
+5
-1
@@ -4,11 +4,15 @@
|
||||
}}
|
||||
|
||||
{{page-title (t 'resources.managed-group.member.title_plural')}}
|
||||
<Breadcrumbs::Item
|
||||
@text={{t 'resources.managed-group.member.title_plural'}}
|
||||
@route='scopes.scope.auth-methods.auth-method.managed-groups.managed-group.members'
|
||||
/>
|
||||
|
||||
<Rose::Layout::Page as |page|>
|
||||
|
||||
<page.breadcrumbs>
|
||||
<BreadCrumbs />
|
||||
<Breadcrumbs::Container />
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
|
||||
@@ -3,17 +3,24 @@
|
||||
SPDX-License-Identifier: MPL-2.0
|
||||
}}
|
||||
|
||||
{{page-title (t 'titles.new')}}
|
||||
<Breadcrumbs::Item
|
||||
@text={{t 'resources.managed-group.titles.new'}}
|
||||
@route='scopes.scope.auth-methods.auth-method.managed-groups.new'
|
||||
/>
|
||||
|
||||
<Rose::Layout::Page as |page|>
|
||||
|
||||
<page.breadcrumbs>
|
||||
<BreadCrumbs />
|
||||
<Breadcrumbs::Container />
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
<h2>
|
||||
{{t 'titles.new'}}
|
||||
{{t 'resources.managed-group.titles.new'}}
|
||||
<DocLink @doc='managed-groups' @iconSize='large' />
|
||||
</h2>
|
||||
<p>{{t 'resources.managed-group.description'}}</p>
|
||||
</page.header>
|
||||
|
||||
<page.body>
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
{{!
|
||||
Copyright (c) HashiCorp, Inc.
|
||||
SPDX-License-Identifier: MPL-2.0
|
||||
}}
|
||||
|
||||
{{page-title (t 'resources.managed-group.member.title_plural')}}
|
||||
|
||||
{{outlet}}
|
||||
Loaded 100 of 261 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user