open-nomad/ui/app/router.js
Buck Doyle 20ec481090
Add DAS subroute and copy button (#9201)
This continues iteration on the DAS UI by adding the ability to directly
navigate to a recommendation summary by (namespaced) slug and a copy
button for the direct navigation link.

It includes a change to CopyButton allowing it to take a block that’s
rendered within the button.

It also changes some instances of multi-relationship traversal to use
in-summary attributes, such as summary.jobNamespace instead of
summary.job.namespace.name.
2020-11-04 12:22:24 -06:00

77 lines
2 KiB
JavaScript

import EmberRouter from '@ember/routing/router';
import config from './config/environment';
export default class Router extends EmberRouter {
location = config.locationType;
rootURL = config.rootURL;
}
Router.map(function() {
this.route('exec', { path: '/exec/:job_name' }, function() {
this.route('task-group', { path: '/:task_group_name' }, function() {
this.route('task', { path: '/:task_name' });
});
});
this.route('jobs', function() {
this.route('run');
this.route('job', { path: '/:job_name' }, function() {
this.route('task-group', { path: '/:name' });
this.route('definition');
this.route('versions');
this.route('deployments');
this.route('evaluations');
this.route('allocations');
});
});
this.route('optimize', function() {
this.route('summary', { path: '*slug' });
});
this.route('clients', function() {
this.route('client', { path: '/:node_id' }, function() {
this.route('monitor');
});
});
this.route('servers', function() {
this.route('server', { path: '/:agent_id' }, function() {
this.route('monitor');
});
});
this.route('topology');
this.route('csi', function() {
this.route('volumes', function() {
this.route('volume', { path: '/:volume_name' });
});
this.route('plugins', function() {
this.route('plugin', { path: '/:plugin_name' }, function() {
this.route('allocations');
});
});
});
this.route('allocations', function() {
this.route('allocation', { path: '/:allocation_id' }, function() {
this.route('fs-root', { path: '/fs' });
this.route('fs', { path: '/fs/*path' });
this.route('task', { path: '/:name' }, function() {
this.route('logs');
this.route('fs-root', { path: '/fs' });
this.route('fs', { path: '/fs/*path' });
});
});
});
this.route('settings', function() {
this.route('tokens');
});
this.route('not-found', { path: '/*' });
});