Skip to content
This repository has been archived by the owner on Jun 12, 2024. It is now read-only.

fix: images in child items #623

Merged
merged 2 commits into from
Nov 16, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions backend/app/api/handlers/v1/v1_ctrl_items.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (
// @Param pageSize query int false "items per page"
// @Param labels query []string false "label Ids" collectionFormat(multi)
// @Param locations query []string false "location Ids" collectionFormat(multi)
// @Param parentIds query []string false "parent Ids" collectionFormat(multi)
// @Success 200 {object} repo.PaginationResult[repo.ItemSummary]{}
// @Router /v1/items [GET]
// @Security Bearer
Expand Down Expand Up @@ -56,6 +57,7 @@ func (ctrl *V1Controller) HandleItemsGetAll() errchain.HandlerFunc {
Search: params.Get("q"),
LocationIDs: queryUUIDList(params, "locations"),
LabelIDs: queryUUIDList(params, "labels"),
ParentItemIDs: queryUUIDList(params, "parentIds"),
IncludeArchived: queryBool(params.Get("includeArchived")),
Fields: filterFieldItems(params["fields"]),
OrderBy: params.Get("orderBy"),
Expand Down
13 changes: 5 additions & 8 deletions backend/internal/data/repo/repo_items.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ type (
AssetID AssetID `json:"assetId"`
LocationIDs []uuid.UUID `json:"locationIds"`
LabelIDs []uuid.UUID `json:"labelIds"`
ParentItemIDs []uuid.UUID `json:"parentIds"`
SortBy string `json:"sortBy"`
IncludeArchived bool `json:"includeArchived"`
Fields []FieldQuery `json:"fields"`
Expand Down Expand Up @@ -159,7 +160,6 @@ type (

Attachments []ItemAttachment `json:"attachments"`
Fields []ItemField `json:"fields"`
Children []ItemSummary `json:"children"`
}
)

Expand Down Expand Up @@ -240,11 +240,6 @@ func mapItemOut(item *ent.Item) ItemOut {
fields = mapFields(item.Edges.Fields)
}

var children []ItemSummary
if item.Edges.Children != nil {
children = mapEach(item.Edges.Children, mapItemSummary)
}

var parent *ItemSummary
if item.Edges.Parent != nil {
v := mapItemSummary(item.Edges.Parent)
Expand Down Expand Up @@ -278,7 +273,6 @@ func mapItemOut(item *ent.Item) ItemOut {
Notes: item.Notes,
Attachments: attachments,
Fields: fields,
Children: children,
}
}

Expand All @@ -296,7 +290,6 @@ func (e *ItemsRepository) getOne(ctx context.Context, where ...predicate.Item) (
WithLabel().
WithLocation().
WithGroup().
WithChildren().
WithParent().
WithAttachments(func(aq *ent.AttachmentQuery) {
aq.WithDocument()
Expand Down Expand Up @@ -398,6 +391,10 @@ func (e *ItemsRepository) QueryByGroup(ctx context.Context, gid uuid.UUID, q Ite

andPredicates = append(andPredicates, item.Or(fieldPredicates...))
}

if len(q.ParentItemIDs) > 0 {
andPredicates = append(andPredicates, item.HasParentWith(item.IDIn(q.ParentItemIDs...)))
}
}

if len(andPredicates) > 0 {
Expand Down
1 change: 1 addition & 0 deletions frontend/lib/api/classes/items.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ export type ItemsQuery = {
pageSize?: number;
locations?: string[];
labels?: string[];
parentIds?: string[];
q?: string;
fields?: string[];
};
Expand Down
21 changes: 19 additions & 2 deletions frontend/pages/item/[id]/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -404,6 +404,23 @@
},
];
});

const items = computedAsync(async () => {
if (!item.value) {
return [];
}

const resp = await api.items.getAll({
parentIds: [item.value.id],
});

if (resp.error) {
toast.error("Failed to load items");
return [];
}

return resp.data.items;
});
</script>

<template>
Expand Down Expand Up @@ -565,8 +582,8 @@
</div>
</section>

<section v-if="!hasNested && item.children.length > 0" class="my-6">
<ItemViewSelectable :items="item.children" />
<section v-if="items && items.length > 0" class="my-6">
<ItemViewSelectable :items="items" />
</section>
</BaseContainer>
</template>
Expand Down
Loading