From 556def1050b311a38d0098675d019a784798ea07 Mon Sep 17 00:00:00 2001 From: Aaron Gundel Date: Fri, 17 Jan 2025 22:07:37 -0700 Subject: [PATCH] updates ResourceInstanceRelationships to derive types and resources from node configuration and database --- arches_lingo/src/arches_lingo/api.ts | 27 +++ .../components/generic/LabelEditor.vue | 185 +++++---------- .../components/generic/NoteEditor.vue | 140 ++++-------- .../generic/ResourceInstanceRelationships.vue | 18 +- .../ResourceInstanceRelationshipsEditor.vue | 216 ++++++++++++++++-- .../ResourceInstanceRelationshipsViewer.vue | 2 +- .../scheme/report/SchemeStandard.vue | 81 +------ arches_lingo/src/arches_lingo/constants.ts | 1 + arches_lingo/src/arches_lingo/types.ts | 15 +- arches_lingo/urls.py | 6 + arches_lingo/views/api/relatable_resources.py | 56 +++++ 11 files changed, 432 insertions(+), 315 deletions(-) create mode 100644 arches_lingo/views/api/relatable_resources.py diff --git a/arches_lingo/src/arches_lingo/api.ts b/arches_lingo/src/arches_lingo/api.ts index 7b1d0224..1b68adb6 100644 --- a/arches_lingo/src/arches_lingo/api.ts +++ b/arches_lingo/src/arches_lingo/api.ts @@ -39,6 +39,20 @@ export const fetchUser = async () => { return parsed; }; +export const fetchRelatableResources = async ( + graphSlug: string, + nodeAlias: string, + page: number, +) => { + const response = await fetch( + `/api/graph/${graphSlug}/node/${nodeAlias}/relatable-resources?page=${page}`, + ); + + const parsed = await response.json(); + if (!response.ok) throw new Error(parsed.message || response.statusText); + return parsed; +}; + export const fetchLingoResources = async (graphSlug: string) => { const response = await fetch(arches.urls.api_lingo_resources(graphSlug)); const parsed = await response.json(); @@ -158,6 +172,19 @@ export const createScheme = async (newScheme: SchemeInstance) => { return parsed; }; +export const fetchRelatableResources = async ( + graphSlug: string, + nodeAlias: string, +) => { + const response = await fetch( + `/api/graph/${graphSlug}/node/${nodeAlias}/relatable-resources`, + ); + + const parsed = await response.json(); + if (!response.ok) throw new Error(parsed.message || response.statusText); + return parsed; +}; + export const fetchSearchResults = async ( searchTerm: string, items: number, diff --git a/arches_lingo/src/arches_lingo/components/generic/LabelEditor.vue b/arches_lingo/src/arches_lingo/components/generic/LabelEditor.vue index 2d45d281..a3d1d5b7 100644 --- a/arches_lingo/src/arches_lingo/components/generic/LabelEditor.vue +++ b/arches_lingo/src/arches_lingo/components/generic/LabelEditor.vue @@ -1,5 +1,5 @@