/** * 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; } }