2023-04-10 15:36:59 +00:00
|
|
|
/**
|
|
|
|
* Copyright (c) HashiCorp, Inc.
|
|
|
|
* SPDX-License-Identifier: MPL-2.0
|
|
|
|
*/
|
|
|
|
|
2017-12-15 21:39:18 +00:00
|
|
|
import { inject as service } from '@ember/service';
|
|
|
|
import Component from '@ember/component';
|
|
|
|
import { computed } from '@ember/object';
|
2020-06-10 13:49:16 +00:00
|
|
|
import classic from 'ember-classic-decorator';
|
2017-10-10 02:00:14 +00:00
|
|
|
|
2020-06-10 13:49:16 +00:00
|
|
|
@classic
|
|
|
|
export default class GutterMenu extends Component {
|
|
|
|
@service system;
|
|
|
|
@service router;
|
2022-08-17 16:59:33 +00:00
|
|
|
@service keyboard;
|
2017-10-10 02:00:14 +00:00
|
|
|
|
2020-06-10 13:49:16 +00:00
|
|
|
@computed('system.namespaces.@each.name')
|
|
|
|
get sortedNamespaces() {
|
2017-10-11 17:10:27 +00:00
|
|
|
const namespaces = this.get('system.namespaces').toArray() || [];
|
|
|
|
|
|
|
|
return namespaces.sort((a, b) => {
|
|
|
|
const aName = a.get('name');
|
|
|
|
const bName = b.get('name');
|
|
|
|
|
|
|
|
// Make sure the default namespace is always first in the list
|
|
|
|
if (aName === 'default') {
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
if (bName === 'default') {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (aName < bName) {
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
if (aName > bName) {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
});
|
2020-06-10 13:49:16 +00:00
|
|
|
}
|
2017-10-11 17:10:27 +00:00
|
|
|
|
2020-06-10 13:49:16 +00:00
|
|
|
onHamburgerClick() {}
|
2018-07-25 17:35:03 +00:00
|
|
|
|
2022-08-17 16:59:33 +00:00
|
|
|
// Seemingly redundant, but serves to ensure the action is passed to the keyboard service correctly
|
|
|
|
transitionTo(destination) {
|
|
|
|
return this.router.transitionTo(destination);
|
|
|
|
}
|
2020-06-10 13:49:16 +00:00
|
|
|
}
|