Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
0fe3fbe
fix: make dropdown menus scrollable
imdeaconu Sep 6, 2024
4ca1a44
fix: truncate overflowing table columns
imdeaconu Sep 6, 2024
921aa13
Merge branch 'commitglobal:main' into main
imdeaconu Sep 6, 2024
e5a2869
Merge branch 'commitglobal:main' into main
imdeaconu Sep 6, 2024
7866a67
Merge branch 'commitglobal:main' into main
imdeaconu Sep 9, 2024
9ea6c42
Merge branch 'commitglobal:main' into main
imdeaconu Sep 10, 2024
1bd449d
Merge branch 'commitglobal:main' into main
imdeaconu Sep 11, 2024
c9874d1
Squashed commit of the following:
imdeaconu Sep 11, 2024
b7715f3
Merge branch 'commitglobal:main' into main
imdeaconu Sep 12, 2024
0facf65
Squashed commit of the following:
imdeaconu Sep 13, 2024
67f681d
chore: remove unused import
imdeaconu Sep 13, 2024
8d73252
chore: delete duplicated / unused classes
imdeaconu Sep 16, 2024
63b21b9
Merge branch 'commitglobal:main' into main
imdeaconu Sep 17, 2024
1892e6e
Merge branch 'commitglobal:main' into main
imdeaconu Sep 18, 2024
abb7c01
feature: add searching to MonitoringObserversTagFilter
imdeaconu Sep 19, 2024
9d0b8ae
Merge branch 'commitglobal:main' into main
imdeaconu Sep 20, 2024
c9fcd3e
chore: update config files
imdeaconu Sep 20, 2024
333ba49
Revert "[NGO Admin] Rewrite the tag selector component (#675)"
imdeaconu Sep 23, 2024
580b68e
Merge branch 'main' of https://github.com/commitglobal/votemonitor
imdeaconu Sep 23, 2024
ba2dad9
Merge branch 'commitglobal:main' into main
imdeaconu Sep 25, 2024
eea4faa
Merge branch 'main' of https://github.com/commitglobal/votemonitor in…
imdeaconu Sep 26, 2024
29b8163
Merge branch 'main' of https://github.com/commitglobal/votemonitor in…
imdeaconu Sep 26, 2024
68a44ee
Merge branch 'commitglobal-main'
imdeaconu Sep 26, 2024
7cf3244
Merge branch 'main' of https://github.com/commitglobal/votemonitor in…
imdeaconu Oct 1, 2024
b6abee7
Merge branch 'commitglobal-main-s1'
imdeaconu Oct 1, 2024
cc71856
Merge branch 'commitglobal:main' into main
imdeaconu Oct 2, 2024
e45ea22
Merge branch 'commitglobal:main' into main
imdeaconu Oct 2, 2024
50d15b6
Merge branch 'commitglobal:main' into main
imdeaconu Oct 2, 2024
1ed8e99
Merge branch 'commitglobal:main' into main
imdeaconu Oct 3, 2024
c2f1395
Merge branch 'commitglobal:main' into main
imdeaconu Oct 7, 2024
2c6d5f0
Merge branch 'commitglobal:main' into main
imdeaconu Oct 9, 2024
8c8e18f
Merge branch 'commitglobal:main' into main
imdeaconu Oct 9, 2024
db46a6d
Merge branch 'commitglobal:main' into main
imdeaconu Oct 10, 2024
d4b0263
Merge branch 'commitglobal:main' into main
imdeaconu Oct 12, 2024
79864cd
Merge branch 'commitglobal:main' into main
imdeaconu Oct 14, 2024
5ae7edf
Merge branch 'commitglobal:main' into main
imdeaconu Oct 15, 2024
c0fe98a
Merge branch 'commitglobal:main' into main
imdeaconu Oct 17, 2024
b7b3c5c
Merge branch 'commitglobal:main' into main
imdeaconu Oct 18, 2024
a892349
Merge branch 'commitglobal:main' into main
imdeaconu Oct 19, 2024
2d98793
Merge branch 'commitglobal:main' into main
imdeaconu Oct 20, 2024
66ba8d0
Merge branch 'commitglobal:main' into main
imdeaconu Oct 21, 2024
a86608d
Merge branch 'commitglobal:main' into main
imdeaconu Oct 22, 2024
aa1745c
Merge branch 'commitglobal:main' into main
imdeaconu Oct 23, 2024
9942029
Merge branch 'commitglobal:main' into main
imdeaconu Oct 23, 2024
d855c24
Merge branch 'commitglobal:main' into main
imdeaconu Oct 25, 2024
5a2b99d
Merge branch 'commitglobal:main' into main
imdeaconu Oct 28, 2024
e9ea9a3
Merge branch 'commitglobal:main' into main
imdeaconu Oct 29, 2024
fdaba4b
Merge branch 'commitglobal:main' into main
imdeaconu Oct 29, 2024
777ab43
Merge branch 'commitglobal:main' into main
imdeaconu Nov 4, 2024
15101d6
Merge branch 'commitglobal:main' into main
imdeaconu Nov 6, 2024
9289b11
Merge branch 'commitglobal:main' into main
imdeaconu Nov 28, 2024
a82ea16
Merge branch 'commitglobal:main' into main
imdeaconu Nov 30, 2024
914fc58
Merge branch 'commitglobal:main' into main
imdeaconu Dec 10, 2024
d9640c9
Merge branch 'commitglobal:main' into main
imdeaconu Jan 27, 2025
3e82dc6
Merge branch 'commitglobal:main' into main
imdeaconu Jan 27, 2025
315dfe9
Merge branch 'commitglobal:main' into main
imdeaconu Jan 29, 2025
6e96bf5
Merge branch 'commitglobal:main' into main
imdeaconu Feb 5, 2025
740f04b
WIP: rename prop for alternative filter key in Observer Tags and add …
imdeaconu Feb 14, 2025
fff3a05
WIP: fix push messages receipients query not invalidating after edits
imdeaconu Feb 14, 2025
a3771c5
invalidate targeted observers query after a morning observer is added
imdeaconu Feb 14, 2025
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
11 changes: 6 additions & 5 deletions web/src/features/filtering/components/ActiveFilters.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import { useDataSource } from '@/common/data-source-store';
import { DateTimeFormat } from '@/common/formats';
import { DataSources } from '@/common/types';
import { FilterBadge } from '@/components/ui/badge';
import { useCurrentElectionRoundStore } from '@/context/election-round.store';
import { useCoalitionDetails } from '@/features/election-event/hooks/coalition-hooks';
import { useFormSubmissionsFilters } from '@/features/responses/hooks/form-submissions-queries';
import {
mapFormSubmissionFollowUpStatus,
Expand All @@ -12,9 +15,6 @@ import { useNavigate } from '@tanstack/react-router';
import { format } from 'date-fns/format';
import { FC, useCallback } from 'react';
import { FILTER_KEY, FILTER_LABEL } from '../filtering-enums';
import { useDataSource } from '@/common/data-source-store';
import { useCoalitionDetails } from '@/features/election-event/hooks/coalition-hooks';
import { DataSources } from '@/common/types';

interface ActiveFilterProps {
filterId: string;
Expand Down Expand Up @@ -50,7 +50,7 @@ const FILTER_LABELS = new Map<string, string>([
[FILTER_KEY.LocationL3, FILTER_LABEL.LocationL3],
[FILTER_KEY.LocationL4, FILTER_LABEL.LocationL4],
[FILTER_KEY.LocationL5, FILTER_LABEL.LocationL5],
[FILTER_KEY.FormSubmissionsMonitoringObserverTags, FILTER_LABEL.FormSubmissionsMonitoringObserverTags],
[FILTER_KEY.TagsFilter, FILTER_LABEL.TagsFilter],
[FILTER_KEY.PollingStationNumber, FILTER_LABEL.PollingStationNumber],
[FILTER_KEY.FormId, FILTER_LABEL.FormId],
[FILTER_KEY.FormStatusFilter, FILTER_LABEL.FormStatus],
Expand Down Expand Up @@ -120,7 +120,8 @@ export const ActiveFilters: FC<ActiveFiltersProps> = ({ queryParams }) => {
.filter(([filterId, value]) => isNotNilOrWhitespace(value?.toString()))
.filter(
([filterId, value]) =>
filterId !== FILTER_KEY.CoalitionMemberId || (dataSource === DataSources.Coalition && filterId === FILTER_KEY.CoalitionMemberId)
filterId !== FILTER_KEY.CoalitionMemberId ||
(dataSource === DataSources.Coalition && filterId === FILTER_KEY.CoalitionMemberId)
)
.map(([filterId, value]) => {
let key = '';
Expand Down
20 changes: 10 additions & 10 deletions web/src/features/filtering/filtering-enums.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export const enum FILTER_KEY {
LocationL4 = 'level4Filter',
LocationL5 = 'level5Filter',
PollingStationNumber = 'pollingStationNumberFilter',
FormSubmissionsMonitoringObserverTags = 'tagsFilter',
TagsFilter = 'tagsFilter',
ViewBy = 'viewBy',
Tab = 'tab',
FormId = 'formId',
Expand All @@ -25,10 +25,10 @@ export const enum FILTER_KEY {
FromDate = 'submissionsFromDate',
ToDate = 'submissionsToDate',
SearchText = 'searchText',
QuickReportIncidentCategory ='incidentCategory',
QuickReportFollowUpStatus ='quickReportFollowUpStatus',
HasQuickReports ='hasQuickReports',
DataSource ='dataSource',
QuickReportIncidentCategory = 'incidentCategory',
QuickReportFollowUpStatus = 'quickReportFollowUpStatus',
HasQuickReports = 'hasQuickReports',
DataSource = 'dataSource',
CoalitionMemberId = 'coalitionMemberId',
}

Expand All @@ -46,15 +46,15 @@ export const enum FILTER_LABEL {
LocationL4 = 'Location - L4',
LocationL5 = 'Location - L5',
PollingStationNumber = 'Polling station number',
FormSubmissionsMonitoringObserverTags = 'Observer tags',
TagsFilter = 'Observer tags',
MediaFiles = 'Has attachments',
FormId = 'Form',
FormStatus = 'Form status',
FromDate = 'From date',
ToDate = 'To Date',
SearchText = 'Search text',
QuickReportIncidentCategory ='Incident category',
QuickReportFollowUpStatus ='Quick report follow up status',
HasQuickReports ='Has quick reports',
CoalitionMemberId = 'NGO'
QuickReportIncidentCategory = 'Incident category',
QuickReportFollowUpStatus = 'Quick report follow up status',
HasQuickReports = 'Has quick reports',
CoalitionMemberId = 'NGO',
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import { useNavigate, useRouter } from '@tanstack/react-router';
import { useForm } from 'react-hook-form';
import { z } from 'zod';
import { monitoringObserversKeys } from '../../hooks/monitoring-observers-queries';
import { targetedObserversKeys } from '../../hooks/push-messages-queries';
import { MonitoringObserverStatus, UpdateMonitoringObserverRequest } from '../../models/monitoring-observer';
import { MonitorObserverBackButton } from '../MonitoringObserverBackButton';

Expand Down Expand Up @@ -87,6 +88,7 @@ export default function EditObserver() {
});
router.invalidate();
queryClient.invalidateQueries({ queryKey: monitoringObserversKeys.all(electionRoundId) });
queryClient.invalidateQueries({ queryKey: targetedObserversKeys.all(electionRoundId) });

navigate({
to: '/monitoring-observers/view/$monitoringObserverId/$tab',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import { useForm } from 'react-hook-form';
import { useTranslation } from 'react-i18next';
import { z } from 'zod';
import { monitoringObserversKeys } from '../../hooks/monitoring-observers-queries';
import { targetedObserversKeys } from '../../hooks/push-messages-queries';

export interface CreateMonitoringObserverDialogProps {
open: boolean;
Expand Down Expand Up @@ -54,6 +55,8 @@ function CreateMonitoringObserverDialog({ open, onOpenChange }: CreateMonitoring
});

queryClient.invalidateQueries({ queryKey: monitoringObserversKeys.all(electionRoundId) });
queryClient.invalidateQueries({ queryKey: targetedObserversKeys.all(electionRoundId) });

form.reset({});
onOpenChange(false);
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,7 @@ import { targetedMonitoringObserverColDefs } from '../../utils/column-defs';

const createPushMessageSchema = z.object({
title: z.string().min(1, { message: 'Your message must have a title before sending.' }),
messageBody: z
.string()
.min(1, { message: 'Your message must have a detailed description before sending.' })
messageBody: z.string().min(1, { message: 'Your message must have a detailed description before sending.' }),
});

function PushMessageForm(): FunctionComponent {
Expand Down Expand Up @@ -201,7 +199,7 @@ function PushMessageForm(): FunctionComponent {
value={searchText}
placeholder='Search'
/>
<MonitoringObserverTagsSelect />
<MonitoringObserverTagsSelect isUsingAlternativeFilteringKey />
<MonitoringObserverStatusSelect />
<FormTypeFilter />
<FormSubmissionsFormFilter />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ import { useMonitoringObserversTags } from '@/hooks/tags-queries';
import { FC } from 'react';

interface MonitoringObserverTagsSelectProps {
isFilteringFormSubmissions?: boolean;
isUsingAlternativeFilteringKey?: boolean;
}

export const MonitoringObserverTagsSelect: FC<MonitoringObserverTagsSelectProps> = ({ isFilteringFormSubmissions }) => {
const COMPONENT_FILTER_KEY = isFilteringFormSubmissions
? FILTER_KEY.FormSubmissionsMonitoringObserverTags
: FILTER_KEY.MonitoringObserverTags;
export const MonitoringObserverTagsSelect: FC<MonitoringObserverTagsSelectProps> = ({
isUsingAlternativeFilteringKey,
}) => {
const COMPONENT_FILTER_KEY = isUsingAlternativeFilteringKey ? FILTER_KEY.TagsFilter : FILTER_KEY.MonitoringObserverTags;

const currentElectionRoundId = useCurrentElectionRoundStore((s) => s.currentElectionRoundId);
const { data: tags } = useMonitoringObserversTags(currentElectionRoundId);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import { useDataSource } from '@/common/data-source-store';
import { DataSources } from '@/common/types';
import { PollingStationsFilters } from '@/components/PollingStationsFilters/PollingStationsFilters';
import { CoalitionMemberFilter } from '@/features/filtering/components/CoalitionMemberFilter';
import { FilteringContainer } from '@/features/filtering/components/FilteringContainer';
import { FormTypeFilter } from '@/features/filtering/components/FormTypeFilter';
import { MonitoringObserverTagsSelect } from '@/features/monitoring-observers/filtering/MonitoringObserverTagsSelect';
Expand All @@ -11,9 +14,6 @@ import { FormSubmissionsMediaFilesFilter } from '../../../filtering/components/F
import { FormSubmissionsQuestionNotesFilter } from '../../../filtering/components/FormSubmissionsQuestionNotesFilter';
import { FormSubmissionsQuestionsAnsweredFilter } from '../../../filtering/components/FormSubmissionsQuestionsAnsweredFilter';
import { FormSubmissionsToDateFilter } from '../../../filtering/components/FormSubmissionsToDateFilter';
import { useDataSource } from '@/common/data-source-store';
import { DataSources } from '@/common/types';
import { CoalitionMemberFilter } from '@/features/filtering/components/CoalitionMemberFilter';

export const FormSubmissionsFiltersByEntry: FC = () => {
const dataSource = useDataSource();
Expand All @@ -28,7 +28,7 @@ export const FormSubmissionsFiltersByEntry: FC = () => {
<FormSubmissionsQuestionsAnsweredFilter />
<FormSubmissionsQuestionNotesFilter />
<FormSubmissionsMediaFilesFilter />
<MonitoringObserverTagsSelect isFilteringFormSubmissions />
<MonitoringObserverTagsSelect isUsingAlternativeFilteringKey />
<PollingStationsFilters />
<FormSubmissionsFromDateFilter />
<FormSubmissionsToDateFilter />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import { useDataSource } from '@/common/data-source-store';
import { DataSources } from '@/common/types';
import { PollingStationsFilters } from '@/components/PollingStationsFilters/PollingStationsFilters';
import { CoalitionMemberFilter } from '@/features/filtering/components/CoalitionMemberFilter';
import { FilteringContainer } from '@/features/filtering/components/FilteringContainer';
import { FormSubmissionsFollowUpFilter } from '@/features/filtering/components/FormSubmissionsFollowUpFilter';
import { FormSubmissionsFormFilter } from '@/features/filtering/components/FormSubmissionsFormFilter';
Expand All @@ -11,9 +14,6 @@ import { FC } from 'react';
import { FormSubmissionsFlaggedAnswersFilter } from '../../../filtering/components/FormSubmissionsFlaggedAnswersFilter';
import { FormSubmissionsMediaFilesFilter } from '../../../filtering/components/FormSubmissionsMediaFilesFilter';
import { FormSubmissionsQuestionNotesFilter } from '../../../filtering/components/FormSubmissionsQuestionNotesFilter';
import { useDataSource } from '@/common/data-source-store';
import { DataSources } from '@/common/types';
import { CoalitionMemberFilter } from '@/features/filtering/components/CoalitionMemberFilter';

export const FormSubmissionsFiltersByForm: FC = () => {
const dataSource = useDataSource();
Expand All @@ -28,7 +28,7 @@ export const FormSubmissionsFiltersByForm: FC = () => {
<FormSubmissionsQuestionsAnsweredFilter />
<FormSubmissionsQuestionNotesFilter />
<FormSubmissionsMediaFilesFilter />
<MonitoringObserverTagsSelect isFilteringFormSubmissions />
<MonitoringObserverTagsSelect isUsingAlternativeFilteringKey />
<PollingStationsFilters />
<FormSubmissionsFromDateFilter />
<FormSubmissionsToDateFilter />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ import { FormSubmissionsFollowUpFilter } from '../../../filtering/components/For

export function FormSubmissionsFiltersByObserver(): FunctionComponent {
const dataSource = useDataSource();

return (
<FilteringContainer>
<FormSubmissionsFollowUpFilter />
{dataSource === DataSources.Coalition ? <CoalitionMemberFilter /> : null}
<MonitoringObserverTagsSelect isFilteringFormSubmissions />
<MonitoringObserverTagsSelect isUsingAlternativeFilteringKey />
<FormSubmissionsFlaggedAnswersFilter />
</FilteringContainer>
);
Expand Down