diff --git a/data-access/src/app/application-services-impl/cognitive-search/service-ticket.ts b/data-access/src/app/application-services-impl/cognitive-search/service-ticket.ts index 2e868c0a..2f846e0e 100644 --- a/data-access/src/app/application-services-impl/cognitive-search/service-ticket.ts +++ b/data-access/src/app/application-services-impl/cognitive-search/service-ticket.ts @@ -100,13 +100,11 @@ export class ServiceTicketSearchApiImpl } async serviceTicketsSearchAdmin(input: ServiceTicketsSearchInput, communityId: string): Promise>> { - let searchString = "" - if(input !== null ){ - searchString = input.searchString.trim(); - } + let searchString = input.searchString.trim(); + console.log(`Resolver>Query>serviceTicketsSearchAdmin: ${searchString}`); - let filterString = this.getFilterStringAdmin(input ? input.options.filter: null, communityId); + let filterString = this.getFilterStringAdmin(input.options.filter, communityId); console.log('filterString: ', filterString); let searchResults: SearchDocumentsResult>; @@ -116,6 +114,10 @@ export class ServiceTicketSearchApiImpl searchMode: 'all', includeTotalCount: true, filter: filterString, + facets: input.options.facets, + top: input.options.top, + skip: input.options.skip, + orderBy: input.options.orderBy, }); }); diff --git a/data-access/src/graphql/schema/types/service-ticket.resolvers.ts b/data-access/src/graphql/schema/types/service-ticket.resolvers.ts index 59bc52bd..6204edcd 100644 --- a/data-access/src/graphql/schema/types/service-ticket.resolvers.ts +++ b/data-access/src/graphql/schema/types/service-ticket.resolvers.ts @@ -78,8 +78,6 @@ const serviceTicket: Resolvers = { const member = await getMemberForCurrentUser(context, context.communityId); return (await context.applicationServices.serviceTicketDataApi.getServiceTicketsByAssignedTo(context.communityId, member.id)) as ServiceTicket[]; }, - // const searchResults = await context.applicationServices.serviceTicketSearchApi.serviceTicketsSearchByCommunityId(null, communityId) - // return await context.applicationServices.serviceTicketSearchApi.getServiceTicketsSearchResults(searchResults) as ServiceTicket[] serviceTicketsByCommunityId: async (_parent, { communityId }, context, _info) => { return (await context.applicationServices.serviceTicketDataApi.getServiceTicketsByCommunityId(communityId)) as ServiceTicket[]; }, diff --git a/ui-community/src/components/layouts/admin/components/service-tickets-list.container.graphql b/ui-community/src/components/layouts/admin/components/service-tickets-list.container.graphql index d95020bf..7d7acddf 100644 --- a/ui-community/src/components/layouts/admin/components/service-tickets-list.container.graphql +++ b/ui-community/src/components/layouts/admin/components/service-tickets-list.container.graphql @@ -30,6 +30,32 @@ fragment AdminServiceTicketSearchFields on ServiceTicketsSearchResult { ...AdminServiceTicketsListContainerSearchServiceTicketsResultFields } count + facets { + requestor { + value + count + } + assignedTo { + value + count + } + status { + value + count + } + priority { + value + count + } + requestorId { + value + count + } + assignedToId { + value + count + } + } } fragment AdminServiceTicketsListContainerSearchServiceTicketsResultFields on ServiceTicketsResult { @@ -47,3 +73,14 @@ fragment AdminServiceTicketsListContainerSearchServiceTicketsResultFields on Ser createdAt updatedAt } + +query AdminMemberNameServiceTicketContainer($communityId: ID!) { + membersByCommunityId(communityId: $communityId) { + ...AdminMembersNameServiceTicketContainerFields + } +} + +fragment AdminMembersNameServiceTicketContainerFields on Member { + id + memberName +} diff --git a/ui-community/src/components/layouts/admin/components/service-tickets-list.container.tsx b/ui-community/src/components/layouts/admin/components/service-tickets-list.container.tsx index c0435ce1..8846b7b7 100644 --- a/ui-community/src/components/layouts/admin/components/service-tickets-list.container.tsx +++ b/ui-community/src/components/layouts/admin/components/service-tickets-list.container.tsx @@ -1,13 +1,43 @@ -import { useLazyQuery } from '@apollo/client'; -import { AdminServiceTicketsListContainerSearchServiceTicketsDocument } from '../../../../generated'; +import { useLazyQuery, useQuery } from '@apollo/client'; +import { + AdminServiceTicketsListContainerSearchServiceTicketsDocument, + AdminMemberNameServiceTicketContainerDocument, + ServiceTicketsSearchFilterDetail +} from '../../../../generated'; import { ComponentQueryLoader } from '../../../ui/molecules/component-query-loader'; import { ServiceTicketsList } from './service-tickets-list'; -import { useEffect } from 'react'; +import { useEffect, useState } from 'react'; +import { ServiceTicketSearchHelpers } from '../../shared/components/service-ticket-search-helpers'; +import { FilterPopover } from '../../shared/components/filter-popover'; +import { + GetFilterFromServiceTicketQueryString, + ServiceTicketFilterNames, + ServiceTicketSearchParamKeys +} from '../../../../constants'; +import { useParams, useSearchParams } from 'react-router-dom'; +import { Input, Skeleton, theme } from 'antd'; + +export const ServiceTicketsListContainer: React.FC = () => { + const params = useParams(); + const [searchParams, setSearchParams] = useSearchParams(); + const [searchString, setSearchString] = useState(searchParams.get(ServiceTicketSearchParamKeys.SearchString) ?? ''); + const { Search } = Input; + const { + token: { colorText } + } = theme.useToken(); + + const { + data: membersData, + loading: memberDataLoading, + error: memberDataError + } = useQuery(AdminMemberNameServiceTicketContainerDocument, { + variables: { communityId: params.communityId ?? '' } + }); -export const ServiceTicketsListContainer: React.FC = (props) => { const [ getServiceTickets, { + called: searchServiceTicketsCalled, loading: searchServiceTicketsLoading, data: searchServiceTicketsData, error: searchServiceTicketsError @@ -16,33 +46,132 @@ export const ServiceTicketsListContainer: React.FC = (props) => { fetchPolicy: 'network-only' }); + const onChange = (e: any) => { + setSearchString(e.target.value); + }; + useEffect(() => { - handleSearch(); - }, [props.communityId]) - + searchParams.set(ServiceTicketSearchParamKeys.Page, searchParams.get(ServiceTicketSearchParamKeys.Page) ?? '1'); + searchParams.set(ServiceTicketSearchParamKeys.Top, searchParams.get(ServiceTicketSearchParamKeys.Top) ?? '10'); + setSearchParams(searchParams); + (async () => { + await handleSearch(); + })(); + }, []); + useEffect(() => { + (async () => { + await handleSearch(); + })(); + }, [searchParams]); const handleSearch = async () => { + if (searchString.length > 0) { + searchParams.set(ServiceTicketSearchParamKeys.SearchString, searchString); + } else { + searchParams.delete(ServiceTicketSearchParamKeys.SearchString); + } + setSearchParams(searchParams); + + const page = parseInt(searchParams.get(ServiceTicketSearchParamKeys.Page) ?? '1') - 1; + const top = parseInt(searchParams.get(ServiceTicketSearchParamKeys.Top) ?? '10'); + const skip = page * top; + + const qsSearchString = searchString; + + let filters: ServiceTicketsSearchFilterDetail = GetFilterFromServiceTicketQueryString(searchParams); + const orderBy = searchParams.get(ServiceTicketSearchParamKeys.Sort) ?? ''; + await getServiceTickets({ variables: { input: { - searchString: "", + searchString: qsSearchString, options: { - filter: { - communityId: props.communityId - } + facets: [ + ServiceTicketFilterNames.Requestor + ',count:1000', + ServiceTicketFilterNames.AssignedTo + ',count:1000', + ServiceTicketFilterNames.Status + ',count:1000', + ServiceTicketFilterNames.Priority + ',count:1000', + ServiceTicketFilterNames.RequestorId + ',count:1000', + ServiceTicketFilterNames.AssignedToId + ',count:1000' + ], + filter: filters, + top: top, + skip: skip, + orderBy: [orderBy] } } } }); + }; + + const clearFilter = () => { + searchParams.delete(ServiceTicketSearchParamKeys.SearchString); + searchParams.delete(ServiceTicketSearchParamKeys.AssignedTo); + searchParams.delete(ServiceTicketSearchParamKeys.Status); + searchParams.delete(ServiceTicketSearchParamKeys.Priority); + searchParams.delete(ServiceTicketSearchParamKeys.Column); + searchParams.delete(ServiceTicketSearchParamKeys.Sort); + searchParams.delete(ServiceTicketSearchParamKeys.SavedFilter); + + setSearchParams(searchParams); + }; + + if (searchServiceTicketsError || memberDataError) { + return
{JSON.stringify(searchServiceTicketsError ? searchServiceTicketsError : memberDataError)}
; + } + if (searchServiceTicketsLoading || memberDataLoading) { + return ( +
+ +
+ ); + } + if (searchServiceTicketsCalled && searchServiceTicketsData) { + let SearchResult = null; + SearchResult = ( +
+        {JSON.stringify(searchServiceTicketsData, null, 2)}
+      
+ ); } return ( - } - error={searchServiceTicketsError} - /> +
+
+ handleSearch()} + value={searchString} + onChange={(e) => onChange(e)} + enterButton + /> + +
+ + + } + error={searchServiceTicketsError} + /> +
); }; diff --git a/ui-community/src/components/layouts/admin/components/service-tickets-list.tsx b/ui-community/src/components/layouts/admin/components/service-tickets-list.tsx index 78a7cfcf..dd3560c2 100644 --- a/ui-community/src/components/layouts/admin/components/service-tickets-list.tsx +++ b/ui-community/src/components/layouts/admin/components/service-tickets-list.tsx @@ -1,10 +1,18 @@ import { Button, Table } from "antd" import dayjs from "dayjs" import { useNavigate } from "react-router-dom" +import { ServiceTicketSearchParamKeys } from "../../../../constants" -export const ServiceTicketsList: React.FC = (props) => { +interface SearchTicketsListProps { + data: any; + searchParams: URLSearchParams; + setSearchParams: (searchParams: URLSearchParams) => void; +} + +export const ServiceTicketsList: React.FC = (props) => { const navigate = useNavigate() - const columns = [ + const columnSearchParams = props.searchParams.get(ServiceTicketSearchParamKeys.Column)?.split(','); + const columnOptions = [ { title: "Action", dataIndex: "id", @@ -43,6 +51,21 @@ export const ServiceTicketsList: React.FC = (props) => { render: (text: any) => {dayjs(text).format('MM/DD/YYYY')} }, ] + + let columns: any = []; + + if (columnSearchParams) { + columns.push(columnOptions.find((option: any) => option.title === 'Action')); + + columnOptions.forEach((option: any) => { + if (columnSearchParams.includes(option.title)) { + columns.push(option); + } + }); + } else { + columns = columnOptions; + } + return
= () => { const { token: { colorText } @@ -26,12 +27,10 @@ export const ServiceTicketsListContainer: React.FC = () => { const params = useParams(); const [searchParams, setSearchParams] = useSearchParams(); const [searchString, setSearchString] = useState(searchParams.get(ServiceTicketSearchParamKeys.SearchString) ?? ''); - const [visible, setVisible] = useState(false); + const { data: membersData, - loading: memberLoading, - error: memberError } = useQuery(MemberNameServiceTicketContainerDocument, { variables: { communityId: params.communityId ?? '' } // fetchPolicy: 'cache-and-network' @@ -144,35 +143,29 @@ export const ServiceTicketsListContainer: React.FC = () => { ); return ( <> -
+
handleSearch()} value={searchString} onChange={(e) => onChange(e)} enterButton /> - setVisible(false)} open={visible} width={445}> - - - +
+ - {SearchResult} ); } @@ -181,7 +174,7 @@ export const ServiceTicketsListContainer: React.FC = () => { <> handleSearch()} value={searchString} onChange={(e) => setSearchString(e.target.value)} diff --git a/ui-community/src/components/layouts/shared/components/filter-popover.tsx b/ui-community/src/components/layouts/shared/components/filter-popover.tsx new file mode 100644 index 00000000..94ff8119 --- /dev/null +++ b/ui-community/src/components/layouts/shared/components/filter-popover.tsx @@ -0,0 +1,171 @@ +import { Button, Popover, Tag } from 'antd'; +import { useEffect, useState } from 'react'; +import { FacetDetail } from '../../../../generated'; +import { SearchFilterConfigDefinition, SearchFilterProps } from './search-filter'; +import { ServiceTicketSearchParamKeys } from '../../../../constants'; +import { FilterOutlined } from '@ant-design/icons'; +import { useSearchParams } from 'react-router-dom'; + +interface FilterPopoverProps { + searchData: any; + memberData: any; + clearFilter: () => void; +} + +export const FilterPopover: React.FC = (props) => { + const [open, setOpen] = useState(false); + const [filters, setFilters] = useState([]); + const [searchParams, setSearchParams] = useSearchParams(); + const handleOpenChange = (newOpen: any) => { + setOpen(newOpen); + }; + const generateFilters = (config: SearchFilterConfigDefinition) => { + const filters: SearchFilterProps[] = []; + config.filters.forEach((filter: any) => { + let newFilter: SearchFilterProps = { + title: filter.title, + options: [], + searchId: filter.searchId, + searchbar: filter.searchbar ?? false + }; + + filter.values.forEach((value: any) => { + const count = + props.searchData.facets[filter.facet[0]].find((facet: FacetDetail) => + filter.handleCount ? filter.handleCount(facet, value) : facet.value === value + )?.count ?? 0; + if (filter.handleBuild) { + filter.handleBuild(newFilter, value, count); + } else { + newFilter.options.push({ + name: value, + count: count, + id: value + }); + } + }); + + filters.push(newFilter); + }); + setFilters(filters); + console.log('yoyo', filters); + }; + + useEffect(() => { + const filterConfig: SearchFilterConfigDefinition = { + filters: [ + // ASSIGNED TO + { + title: 'Assigned To', + searchId: [ServiceTicketSearchParamKeys.AssignedTo], + searchbar: true, + values: props.memberData.membersByCommunityId, + facet: ['assignedToId'], + handleCount: (facet: FacetDetail, value: any) => { + return facet.value === value.id; + }, + handleBuild: (filter: SearchFilterProps, value: any, count: number) => { + filter.options.push({ + name: value.memberName, + count: count, + id: value.id + }); + } + }, + // PRIORITY + { + title: 'Priority', + searchId: [ServiceTicketSearchParamKeys.Priority], + values: ['1', '2', '3', '4', '5'], + facet: ['priority'] + }, + // STATUS + { + title: 'Status', + searchId: [ServiceTicketSearchParamKeys.Status], + values: ['Created', 'Draft', 'Submitted', 'Assigned', 'In Progress', 'Completed', 'Closed'], + facet: ['status'], + handleCount: (facet: FacetDetail, value: any) => { + return facet.value === value.toUpperCase(); + } + } + ] + }; + + generateFilters(filterConfig); + }, []); + + const getSearchId = (key: string) => { + return filters.filter((filter: any) => filter.options.some((option: any) => option.id === key))[0].searchId[0] + } + + const onSelectCheckbox = (checked: any, key: string) => { + const searchId = getSearchId(key) + if (checked) { + const originalSearchParams = searchParams.get(searchId) ?? ''; + searchParams.set(searchId, originalSearchParams.length > 0 ? searchParams.get(searchId) + ',' + key : key); + setSearchParams(searchParams); + } else { + const searchParamsString = searchParams.get(searchId)?.split(','); + const newSearchParamsArray: any = []; + searchParamsString?.forEach((searchParam) => { + if (searchParam !== key) { + newSearchParamsArray.push(searchParam); + } + }); + searchParams.set(searchId, newSearchParamsArray.join(',')); + if (searchParams.get(searchId) === '') { + searchParams.delete(searchId); + } + setSearchParams(searchParams); + } + }; + + const isChecked = (id: string) => { + return searchParams.get(getSearchId(id))?.split(',').includes(id) ? true : false + }; + + const popoverContent = filters.map((filter) => { + const tagContent = filter.options.map((option) => { + return ( + onSelectCheckbox(e, option.id)} + style={{ borderRadius: '10px', border: '1px solid #4096ff', marginBottom: '5px', fontFamily: 'sans-serif'}} + > + {option.name + " (" + option.count + ")"} + + ); + }); + return ( +
+ {filter.title} + {tagContent} +
+ ); + }); + + return ( +
+ + + +
+ ); +}; diff --git a/ui-community/src/components/layouts/shared/components/service-ticket-search-helpers.tsx b/ui-community/src/components/layouts/shared/components/service-ticket-search-helpers.tsx new file mode 100644 index 00000000..68414c25 --- /dev/null +++ b/ui-community/src/components/layouts/shared/components/service-ticket-search-helpers.tsx @@ -0,0 +1,98 @@ +import { Button, Select } from 'antd'; +import { SearchParamKeys, ServiceTicketSearchParamKeys, ServiceTicketSortOptions } from '../../../../constants'; +import { useSearchParams } from 'react-router-dom'; +import { useState } from 'react'; + +export interface SearchHelperProps { + clearFilter: () => void +} + +export const ServiceTicketSearchHelpers: React.FC = (props) => { + const [searchParams, setSearchParams] = useSearchParams(); + const [columnsToDisplay, setColumnsToDisplay] = useState( + searchParams.get(ServiceTicketSearchParamKeys.Column)?.split(',') ?? [] + ); + const columnOptions = ['Title', 'Requestor', 'Assigned To', 'Priority', 'Updated', 'Created']; + const { Option } = Select; + + const onSelectColumnChanged = (columnName: string) => { + const originalSearchParams = searchParams.get(ServiceTicketSearchParamKeys.Column) ?? ''; + searchParams.set( + ServiceTicketSearchParamKeys.Column, + originalSearchParams.length > 0 + ? searchParams.get(ServiceTicketSearchParamKeys.Column) + ',' + columnName + : columnName + ); + setSearchParams(searchParams); + setColumnsToDisplay([...(columnsToDisplay ?? []), columnName]); + }; + + const onColumnDelete = (columnName: string) => { + const searchParamsString = searchParams.get(ServiceTicketSearchParamKeys.Column)?.split(','); + const newSearchParamsArray: string[] = []; + searchParamsString?.forEach((searchParam) => { + if (searchParam !== columnName) { + newSearchParamsArray.push(searchParam); + } + }); + + if (newSearchParamsArray.length > 0) { + searchParams.set(ServiceTicketSearchParamKeys.Column, newSearchParamsArray.join(',')); + } else { + searchParams.delete(ServiceTicketSearchParamKeys.Column); + } + setSearchParams(searchParams); + setColumnsToDisplay(columnsToDisplay?.filter((column) => column !== columnName)); + }; + + const onSortChanged = (value: string) => { + if (value) { + searchParams.set(SearchParamKeys.Sort, value); + } else { + searchParams.delete(SearchParamKeys.Sort); + } + + setSearchParams(searchParams); + }; + + return ( +
+ + + +
+ ); +}; diff --git a/ui-community/src/generated.tsx b/ui-community/src/generated.tsx index ae2b907b..84fd1361 100644 --- a/ui-community/src/generated.tsx +++ b/ui-community/src/generated.tsx @@ -2703,6 +2703,15 @@ export type AdminServiceTicketsListContainerSearchServiceTicketsQuery = { createdAt?: any | null; updatedAt?: any | null; } | null> | null; + facets?: { + __typename?: 'ServiceTicketsSearchFacets'; + requestor?: Array<{ __typename?: 'FacetDetail'; value?: string | null; count?: number | null } | null> | null; + assignedTo?: Array<{ __typename?: 'FacetDetail'; value?: string | null; count?: number | null } | null> | null; + status?: Array<{ __typename?: 'FacetDetail'; value?: string | null; count?: number | null } | null> | null; + priority?: Array<{ __typename?: 'FacetDetail'; value?: string | null; count?: number | null } | null> | null; + requestorId?: Array<{ __typename?: 'FacetDetail'; value?: string | null; count?: number | null } | null> | null; + assignedToId?: Array<{ __typename?: 'FacetDetail'; value?: string | null; count?: number | null } | null> | null; + } | null; } | null; }; @@ -2725,6 +2734,15 @@ export type AdminServiceTicketSearchFieldsFragment = { createdAt?: any | null; updatedAt?: any | null; } | null> | null; + facets?: { + __typename?: 'ServiceTicketsSearchFacets'; + requestor?: Array<{ __typename?: 'FacetDetail'; value?: string | null; count?: number | null } | null> | null; + assignedTo?: Array<{ __typename?: 'FacetDetail'; value?: string | null; count?: number | null } | null> | null; + status?: Array<{ __typename?: 'FacetDetail'; value?: string | null; count?: number | null } | null> | null; + priority?: Array<{ __typename?: 'FacetDetail'; value?: string | null; count?: number | null } | null> | null; + requestorId?: Array<{ __typename?: 'FacetDetail'; value?: string | null; count?: number | null } | null> | null; + assignedToId?: Array<{ __typename?: 'FacetDetail'; value?: string | null; count?: number | null } | null> | null; + } | null; }; export type AdminServiceTicketsListContainerSearchServiceTicketsResultFieldsFragment = { @@ -2744,6 +2762,21 @@ export type AdminServiceTicketsListContainerSearchServiceTicketsResultFieldsFrag updatedAt?: any | null; }; +export type AdminMemberNameServiceTicketContainerQueryVariables = Exact<{ + communityId: Scalars['ID']; +}>; + +export type AdminMemberNameServiceTicketContainerQuery = { + __typename?: 'Query'; + membersByCommunityId?: Array<{ __typename?: 'Member'; id: any; memberName?: string | null } | null> | null; +}; + +export type AdminMembersNameServiceTicketContainerFieldsFragment = { + __typename?: 'Member'; + id: any; + memberName?: string | null; +}; + export type AdminSettingsGeneralContainerCommunityQueryVariables = Exact<{ id: Scalars['ID']; }>; @@ -6398,7 +6431,82 @@ export const AdminServiceTicketSearchFieldsFragmentDoc = { ] } }, - { kind: 'Field', name: { kind: 'Name', value: 'count' } } + { kind: 'Field', name: { kind: 'Name', value: 'count' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'facets' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'requestor' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + { kind: 'Field', name: { kind: 'Name', value: 'count' } } + ] + } + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'assignedTo' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + { kind: 'Field', name: { kind: 'Name', value: 'count' } } + ] + } + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'status' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + { kind: 'Field', name: { kind: 'Name', value: 'count' } } + ] + } + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'priority' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + { kind: 'Field', name: { kind: 'Name', value: 'count' } } + ] + } + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'requestorId' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + { kind: 'Field', name: { kind: 'Name', value: 'count' } } + ] + } + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'assignedToId' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + { kind: 'Field', name: { kind: 'Name', value: 'count' } } + ] + } + } + ] + } + } ] } }, @@ -6427,6 +6535,23 @@ export const AdminServiceTicketSearchFieldsFragmentDoc = { } ] } as unknown as DocumentNode; +export const AdminMembersNameServiceTicketContainerFieldsFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'AdminMembersNameServiceTicketContainerFields' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'Member' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'memberName' } } + ] + } + } + ] +} as unknown as DocumentNode; export const AdminSettingsGeneralContainerCommunityFieldsFragmentDoc = { kind: 'Document', definitions: [ @@ -12152,7 +12277,82 @@ export const AdminServiceTicketsListContainerSearchServiceTicketsDocument = { ] } }, - { kind: 'Field', name: { kind: 'Name', value: 'count' } } + { kind: 'Field', name: { kind: 'Name', value: 'count' } }, + { + kind: 'Field', + name: { kind: 'Name', value: 'facets' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'requestor' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + { kind: 'Field', name: { kind: 'Name', value: 'count' } } + ] + } + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'assignedTo' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + { kind: 'Field', name: { kind: 'Name', value: 'count' } } + ] + } + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'status' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + { kind: 'Field', name: { kind: 'Name', value: 'count' } } + ] + } + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'priority' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + { kind: 'Field', name: { kind: 'Name', value: 'count' } } + ] + } + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'requestorId' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + { kind: 'Field', name: { kind: 'Name', value: 'count' } } + ] + } + }, + { + kind: 'Field', + name: { kind: 'Name', value: 'assignedToId' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'value' } }, + { kind: 'Field', name: { kind: 'Name', value: 'count' } } + ] + } + } + ] + } + } ] } } @@ -12161,6 +12361,63 @@ export const AdminServiceTicketsListContainerSearchServiceTicketsDocument = { AdminServiceTicketsListContainerSearchServiceTicketsQuery, AdminServiceTicketsListContainerSearchServiceTicketsQueryVariables >; +export const AdminMemberNameServiceTicketContainerDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'AdminMemberNameServiceTicketContainer' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'communityId' } }, + type: { kind: 'NonNullType', type: { kind: 'NamedType', name: { kind: 'Name', value: 'ID' } } } + } + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'membersByCommunityId' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'communityId' }, + value: { kind: 'Variable', name: { kind: 'Name', value: 'communityId' } } + } + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'AdminMembersNameServiceTicketContainerFields' } + } + ] + } + } + ] + } + }, + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'AdminMembersNameServiceTicketContainerFields' }, + typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: 'Member' } }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + { kind: 'Field', name: { kind: 'Name', value: 'memberName' } } + ] + } + } + ] +} as unknown as DocumentNode< + AdminMemberNameServiceTicketContainerQuery, + AdminMemberNameServiceTicketContainerQueryVariables +>; export const AdminSettingsGeneralContainerCommunityDocument = { kind: 'Document', definitions: [