* [COMPLIANCE] Add Copyright and License Headers * chore: 🤖 update Copyright headers to satisfy our lint rules --------- Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com> Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
41 lines
975 B
JavaScript
41 lines
975 B
JavaScript
/**
|
|
* 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 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.
|
|
*/
|
|
get flatSortedScopes() {
|
|
const { scopes } = this.model;
|
|
const global = scopes.find((scope) => scope.isGlobal);
|
|
const orgsAndProjects = scopes
|
|
.filter((scope) => scope.isOrg)
|
|
.map((org) => [
|
|
org,
|
|
...scopes.filter((scope) => scope.scopeID === org.id),
|
|
]);
|
|
const sorted = [global, ...orgsAndProjects].flat();
|
|
return sorted;
|
|
}
|
|
}
|