consul/ui-v2/app/utils/update-array-object.js
John Cowen 482426b13e UI: ACL Roles (#5635)
Adds support for ACL Roles and Service Identities CRUD, along with necessary changes to Tokens, and the CSS improvements required.

Also includes refinements/improvements for easier testing of deeply nested components.

1. ember-data adapter/serializer/model triplet for Roles
2. repository, form/validations and searching filter for Roles
3. Moves potentially, repeated, or soon to to repeated functionality
into a mixin (mainly for 'many policy' relationships)
4. A few styling tweaks for little edge cases around roles
5. Router additions, Route, Controller and templates for Roles

Also see: 

* UI: ACL Roles cont. plus Service Identities (#5661 and #5720)
2019-05-01 18:22:37 +00:00

22 lines
747 B
JavaScript

import { get, set } from '@ember/object';
import ObjectProxy from '@ember/object/proxy';
export default function(items, item, prop, value) {
value = typeof value === 'undefined' ? get(item, prop) : value;
const pos = items.findIndex(function(item) {
return get(item, prop) === value;
});
if (pos !== -1) {
// TODO: We only currently use this with EventSources
// would be good to check this doesn't do anything unexpected
// with other proxies.
// Before we get there, we might have figured a better way to do
// this anyway
if (item instanceof ObjectProxy) {
set(item, 'content', items.objectAt(pos));
}
items.replace(pos, 1, [item]);
items.enumerableContentDidChange();
}
return item;
}