diff --git a/frontend/resources/__tests__/in_use_test.ts b/frontend/resources/__tests__/in_use_test.ts index e4ecbe332..e45708629 100644 --- a/frontend/resources/__tests__/in_use_test.ts +++ b/frontend/resources/__tests__/in_use_test.ts @@ -28,13 +28,15 @@ describe("resourceUsageList", () => { "Sequence.Sequence": { "Regimen.9.9": { "Sequence.10.10": true, "Sequence.11.11": true } }, - "Sequence.FbosConfig": { "Device.99.99": { "Sequence.12.12": true } } + "Sequence.FbosConfig": { "Sequence.12.12": { "FbosConfig.13.13": true } }, + "Sequence.PinBinding": { "Sequence.14.14": { "PinBinding.15.15": true } }, }; const actual = Object.keys(resourceUsageList(x)).sort(); const expected = [ "FarmEvent.0.0", "FarmEvent.3.3", "Regimen.6.6", "Regimen.9.9", - "Device.99.99", + "Sequence.12.12", + "Sequence.14.14", ].sort(); expect(actual.length).toEqual(expected.length); expected.map(y => expect(actual).toContain(y)); diff --git a/frontend/resources/in_use.ts b/frontend/resources/in_use.ts index ba8dd4826..fc6243c12 100644 --- a/frontend/resources/in_use.ts +++ b/frontend/resources/in_use.ts @@ -22,6 +22,7 @@ export type UsageKind = | "Sequence.Regimen" | "Sequence.FarmEvent" | "Sequence.Sequence" + | "Sequence.PinBinding" | "Sequence.FbosConfig"; /** This variable ensures that `EVERY_USAGE_KIND` does not have typos and is @@ -31,6 +32,7 @@ const values: Record = { "Sequence.Regimen": "Sequence.Regimen", "Sequence.FarmEvent": "Sequence.FarmEvent", "Sequence.Sequence": "Sequence.Sequence", + "Sequence.PinBinding": "Sequence.PinBinding", "Sequence.FbosConfig": "Sequence.FbosConfig" }; diff --git a/frontend/resources/reducer.ts b/frontend/resources/reducer.ts index fc612eef8..8a6417ffd 100644 --- a/frontend/resources/reducer.ts +++ b/frontend/resources/reducer.ts @@ -73,6 +73,7 @@ export const emptyState = (): RestResources => { "Sequence.FarmEvent": {}, "Sequence.Regimen": {}, "Sequence.Sequence": {}, + "Sequence.PinBinding": {}, "Sequence.FbosConfig": {} } } diff --git a/frontend/resources/reducer_support.ts b/frontend/resources/reducer_support.ts index 10b002b2d..5859d784c 100644 --- a/frontend/resources/reducer_support.ts +++ b/frontend/resources/reducer_support.ts @@ -15,6 +15,7 @@ import { } from "../sequences/locals_list/sanitize_nodes"; import { selectAllFarmEvents, + selectAllPinBindings, findByKindAndId, selectAllLogs, selectAllRegimens, @@ -212,6 +213,21 @@ const AFTER_HOOKS: IndexerHook = { i.inUse["Sequence.FbosConfig"] = {}; } }, + PinBinding: (i) => { + i.inUse["Sequence.PinBinding"] = {}; + const tracker = i.inUse["Sequence.PinBinding"]; + selectAllPinBindings(i) + .map(pinBinding => { + if (pinBinding.body.binding_type === "standard") { + const { sequence_id } = pinBinding.body; + const uuid = i.byKindAndId[joinKindAndId("Sequence", sequence_id)]; + if (uuid) { + tracker[uuid] = tracker[uuid] || {}; + tracker[uuid][pinBinding.uuid] = true; + } + } + }); + }, FarmEvent: reindexAllFarmEventUsage, Sequence: reindexAllSequences, Regimen: (i) => {