open-consul/ui/packages/consul-ui/app/routes/dc/kv/index.js

30 lines
786 B
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import Route from 'consul-ui/routing/route';
import { action } from '@ember/object';
import isFolder from 'consul-ui/utils/isFolder';
export default class IndexRoute extends Route {
beforeModel() {
// we are index or folder, so if the key doesn't have a trailing slash
// add one to force a fake findBySlug
const params = this.paramsFor(this.routeName);
const key = params.key || '/';
if (!isFolder(key)) {
return this.replaceWith(this.routeName, key + '/');
}
}
@action
error(e) {
if (e.errors && e.errors[0] && e.errors[0].status == '404') {
return this.transitionTo('dc.kv.index');
}
// let the route above handle the error
return true;
}
}