diff --git a/client/src/components/DashboardPage/DecisionSupportFilePanel.tsx b/client/src/components/DashboardPage/DecisionSupportFilePanel.tsx index 208c7d7..56ba4fa 100644 --- a/client/src/components/DashboardPage/DecisionSupportFilePanel.tsx +++ b/client/src/components/DashboardPage/DecisionSupportFilePanel.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { DecisionSupportFile, DecisionSupportFileStatus } from '../../types/decision'; -import { ItemPanel, TabDefinition, Item } from './ItemPanel'; +import { ItemPanel, TabDefinition, Item } from '../ItemPanel'; import { useUserProfile } from '../../gql/queries/profile'; import { inWorkgroup } from '../../types/workgroup'; import { useDecisionSupportFiles } from '../../gql/queries/dsf'; diff --git a/client/src/components/DashboardPage/WorkgroupsPanel.tsx b/client/src/components/DashboardPage/WorkgroupsPanel.tsx index 5bb9684..dc9fa4f 100644 --- a/client/src/components/DashboardPage/WorkgroupsPanel.tsx +++ b/client/src/components/DashboardPage/WorkgroupsPanel.tsx @@ -2,7 +2,7 @@ import React, { } from 'react'; import { Workgroup, inWorkgroup } from '../../types/workgroup'; import { useWorkgroups } from '../../gql/queries/workgroups'; import { useUserProfile } from '../../gql/queries/profile'; -import { ItemPanel, Item } from './ItemPanel'; +import { ItemPanel, Item } from '../ItemPanel'; export function WorkgroupsPanel() { const { workgroups } = useWorkgroups(); diff --git a/client/src/components/DecisionSupportFileLink.tsx b/client/src/components/DecisionSupportFileLink.tsx index 542c94a..0f512e0 100644 --- a/client/src/components/DecisionSupportFileLink.tsx +++ b/client/src/components/DecisionSupportFileLink.tsx @@ -4,7 +4,7 @@ import { useWorkgroups } from "../gql/queries/workgroups"; import { useDecisionSupportFiles } from "../gql/queries/dsf"; export interface DecisioSupportFileLinkProps { - decisionSupportFileId: number + decisionSupportFileId: number|string } export const DecisionSupportFileLink: FunctionComponent = ({ decisionSupportFileId }) => { diff --git a/client/src/components/DashboardPage/ItemPanel.tsx b/client/src/components/ItemPanel.tsx similarity index 98% rename from client/src/components/DashboardPage/ItemPanel.tsx rename to client/src/components/ItemPanel.tsx index 84211af..14be08f 100644 --- a/client/src/components/DashboardPage/ItemPanel.tsx +++ b/client/src/components/ItemPanel.tsx @@ -1,6 +1,6 @@ import React, { FunctionComponent, useState, useEffect } from "react"; import { Link } from "react-router-dom"; -import { WithLoader } from "../WithLoader"; +import { WithLoader } from "./WithLoader"; export interface Item { id: string diff --git a/client/src/components/WorkgroupPage/DecisionSupportFilePanel.tsx b/client/src/components/WorkgroupPage/DecisionSupportFilePanel.tsx new file mode 100644 index 0000000..1dffea8 --- /dev/null +++ b/client/src/components/WorkgroupPage/DecisionSupportFilePanel.tsx @@ -0,0 +1,48 @@ +import React, { FunctionComponent } from 'react'; +import { Link } from 'react-router-dom'; +import { useDecisionSupportFiles } from '../../gql/queries/dsf'; +import { DecisionSupportFile } from '../../types/decision'; +import { User } from '../../types/user'; +import { DecisionSupportFileLink } from '../DecisionSupportFileLink'; +import { WorkgroupLink } from '../WorkgroupLink'; + +export interface DecisionSupportFilePanelProps { + workgroupId: string +} + +export const DecisionSupportFilePanel: FunctionComponent = ({ workgroupId }) => { + const { decisionSupportFiles } = useDecisionSupportFiles({ + variables: { + filter: { + workgroups: [workgroupId], + } + } + }) + + return ( + + ); +} \ No newline at end of file diff --git a/client/src/components/WorkgroupPage/WorkgroupPage.tsx b/client/src/components/WorkgroupPage/WorkgroupPage.tsx index b9f74b3..530f452 100644 --- a/client/src/components/WorkgroupPage/WorkgroupPage.tsx +++ b/client/src/components/WorkgroupPage/WorkgroupPage.tsx @@ -1,18 +1,18 @@ import React, { useEffect, useState, Fragment } from 'react'; import { Page } from '../Page'; -import { WithLoader } from '../WithLoader'; import { useParams } from 'react-router'; -import { useWorkgroupsQuery, useWorkgroups } from '../../gql/queries/workgroups'; -import { useUserProfileQuery, useUserProfile } from '../../gql/queries/profile'; +import { useWorkgroups } from '../../gql/queries/workgroups'; +import { useUserProfile } from '../../gql/queries/profile'; import { MembersPanel } from './MembersPanel'; import { User } from '../../types/user'; import { InfoPanel } from './InfoPanel'; import { Workgroup } from '../../types/workgroup'; import { useJoinWorkgroupMutation, useLeaveWorkgroupMutation, useCloseWorkgroupMutation } from '../../gql/mutations/workgroups'; import { TimelinePanel } from './TimelinePanel'; +import { DecisionSupportFilePanel } from './DecisionSupportFilePanel'; export function WorkgroupPage() { - const { id } = useParams(); + const { id } = useParams(); const { workgroups } = useWorkgroups({ variables:{ filter: { @@ -140,6 +140,7 @@ export function WorkgroupPage() {
+
diff --git a/internal/graph/query.graphql b/internal/graph/query.graphql index 0599fe8..aea05aa 100644 --- a/internal/graph/query.graphql +++ b/internal/graph/query.graphql @@ -46,6 +46,7 @@ type DecisionSupportFile { input DecisionSupportFileFilter { ids: [ID] + workgroups: [ID] } input AuthorizationObject { diff --git a/internal/model/dsf_repository.go b/internal/model/dsf_repository.go index 4660713..6106429 100644 --- a/internal/model/dsf_repository.go +++ b/internal/model/dsf_repository.go @@ -108,6 +108,10 @@ func (r *DSFRepository) Search(ctx context.Context, filter *DecisionSupportFileF if filter.Ids != nil { query = query.Where("id in (?)", filter.Ids) } + + if filter.Workgroups != nil { + query = query.Where("workgroup_id in (?)", filter.Workgroups) + } } dsfs := make([]*DecisionSupportFile, 0)