ddf8c20219
* add menu-loader component to show menu loading button when the model relationship isPending * list what keys we've got in api-path error * fix spacing issue on error flash * add an action on list-controller that bubbles to the list-route mixin to refresh the route * empty store when creating scopes * don't delete _requestQuery in the loop, do it after * add scope deletion from the scope list * add deleteRecord to kmip adapters * add model-wrap component * delete role from detail page and list * add revoke credentials functionality * fix comment * treat all operations fields specially on kmip roles * adjust kmip role edit form for new fields * fix api-path test * update document blocks for menu-loader and model-wrap components
25 lines
724 B
JavaScript
25 lines
724 B
JavaScript
import { assert } from '@ember/debug';
|
|
|
|
// This is a tagged template function that will
|
|
// replace placeholders in the form of 'id' with the value from the passed context
|
|
//
|
|
// usage:
|
|
// let fn = apiPath`foo/bar/${'id'}`;
|
|
// let output = fn({id: 'an-id'});
|
|
// output will result in 'foo/bar/an-id';
|
|
|
|
export default function apiPath(strings, ...keys) {
|
|
return function(data) {
|
|
let dict = data || {};
|
|
let result = [strings[0]];
|
|
assert(
|
|
`Expected ${keys.length} keys in apiPath context, only recieved ${Object.keys(data).join(',')}`,
|
|
Object.keys(data).length >= keys.length
|
|
);
|
|
keys.forEach((key, i) => {
|
|
result.push(dict[key], strings[i + 1]);
|
|
});
|
|
return result.join('');
|
|
};
|
|
}
|