mirror of
https://github.com/kemko/nomad.git
synced 2026-01-01 16:05:42 +03:00
67 lines
1.4 KiB
JavaScript
67 lines
1.4 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: MPL-2.0
|
|
*/
|
|
|
|
import Controller, { inject as controller } from '@ember/controller';
|
|
import { inject as service } from '@ember/service';
|
|
import { action } from '@ember/object';
|
|
|
|
const ALL_NAMESPACE_WILDCARD = '*';
|
|
|
|
export default class VariablesPathController extends Controller {
|
|
@service router;
|
|
|
|
get absolutePath() {
|
|
return this.model?.absolutePath || '';
|
|
}
|
|
get breadcrumbs() {
|
|
if (this.absolutePath) {
|
|
let crumbs = [];
|
|
this.absolutePath.split('/').reduce((m, n) => {
|
|
crumbs.push({
|
|
label: n,
|
|
args: [`variables.path`, m + n],
|
|
});
|
|
return m + n + '/';
|
|
}, []);
|
|
return crumbs;
|
|
} else {
|
|
return [];
|
|
}
|
|
}
|
|
|
|
@action goToNewVariable() {
|
|
this.router.transitionTo('variables.new', {
|
|
queryParams: { path: `${this.absolutePath}/` },
|
|
});
|
|
}
|
|
|
|
@controller variables;
|
|
|
|
@action
|
|
setNamespace(namespace) {
|
|
this.variables.setNamespace(namespace);
|
|
}
|
|
|
|
get namespaceSelection() {
|
|
return this.variables.qpNamespace;
|
|
}
|
|
|
|
get namespaceOptions() {
|
|
const namespaces = this.store
|
|
.peekAll('namespace')
|
|
.map(({ name }) => ({ key: name, label: name }));
|
|
|
|
if (namespaces.length <= 1) return null;
|
|
|
|
// Create default namespace selection
|
|
namespaces.unshift({
|
|
key: ALL_NAMESPACE_WILDCARD,
|
|
label: 'All (*)',
|
|
});
|
|
|
|
return namespaces;
|
|
}
|
|
}
|