Skip to content
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
9 changes: 5 additions & 4 deletions frontend/src/modules/member/config/filters/activeOn/config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import { FilterConfigType } from '@/shared/modules/filters/types/FilterConfig';
import { MultiSelectFilterConfig, MultiSelectFilterValue } from '@/shared/modules/filters/types/filterTypes/MultiSelectFilterConfig';
import { CrowdIntegrations } from '@/integrations/integrations-config';
import { apiFilterRendererByType } from '@/shared/modules/filters/config/apiFilterRendererByType';
import { itemLabelRendererByType } from '@/shared/modules/filters/config/itemLabelRendererByType';

const activeOn: MultiSelectFilterConfig = {
id: 'activeOn',
Expand All @@ -20,11 +22,10 @@ const activeOn: MultiSelectFilterConfig = {
],
},
itemLabelRenderer(value: MultiSelectFilterValue): string {
return `Active On ${value?.value.join(',') || '...'}`;
return itemLabelRendererByType[FilterConfigType.MULTISELECT]('Active on', value);
},
apiFilterRenderer(value): any[] {
console.log(value);
return [];
apiFilterRenderer(value: MultiSelectFilterValue): any[] {
return apiFilterRendererByType[FilterConfigType.MULTISELECT]('activeOn', value);
},
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ import { CustomFilterConfig } from '@/shared/modules/filters/types/filterTypes/C
import ActivityTypeFilter from '@/modules/activity/config/filters/activityType/ActivityTypeFilter.vue';
import { SelectFilterValue } from '@/shared/modules/filters/types/filterTypes/SelectFilterConfig';
import { queryUrlParserByType } from '@/shared/modules/filters/config/queryUrlParserByType';
import { itemLabelRendererByType } from '@/shared/modules/filters/config/itemLabelRendererByType';
import { apiFilterRendererByType } from '@/shared/modules/filters/config/apiFilterRendererByType';

const activityType: CustomFilterConfig = {
id: 'activityType',
Expand All @@ -13,11 +15,10 @@ const activityType: CustomFilterConfig = {
},
queryUrlParser: queryUrlParserByType[FilterConfigType.SELECT],
itemLabelRenderer(value: SelectFilterValue): string {
return `Active on ${value || '...'}`;
return itemLabelRendererByType[FilterConfigType.SELECT]('Activity type', value);
},
apiFilterRenderer(value): any[] {
console.log(value);
return [];
apiFilterRenderer(value: SelectFilterValue): any[] {
return apiFilterRendererByType[FilterConfigType.SELECT]('activityTypes', value);
},
};

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import { FilterConfigType } from '@/shared/modules/filters/types/FilterConfig';
import { MultiSelectFilterConfig, MultiSelectFilterValue } from '@/shared/modules/filters/types/filterTypes/MultiSelectFilterConfig';
import { itemLabelRendererByType } from '@/shared/modules/filters/config/itemLabelRendererByType';
import { apiFilterRendererByType } from '@/shared/modules/filters/config/apiFilterRendererByType';
import options from './options';

const avgSentiment: MultiSelectFilterConfig = {
Expand All @@ -10,11 +12,10 @@ const avgSentiment: MultiSelectFilterConfig = {
options,
},
itemLabelRenderer(value: MultiSelectFilterValue): string {
return `Avg. sentiment ${value?.value.join(',') || '...'}`;
return itemLabelRendererByType[FilterConfigType.MULTISELECT]('Avg. sentiment', value);
},
apiFilterRenderer(value): any[] {
console.log(value);
return [];
apiFilterRenderer(value: MultiSelectFilterValue): any[] {
return apiFilterRendererByType[FilterConfigType.MULTISELECT]('averageSentiment', value);
},
};

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import { FilterConfigType } from '@/shared/modules/filters/types/FilterConfig';
import { MultiSelectFilterConfig, MultiSelectFilterValue } from '@/shared/modules/filters/types/filterTypes/MultiSelectFilterConfig';
import { itemLabelRendererByType } from '@/shared/modules/filters/config/itemLabelRendererByType';
import { apiFilterRendererByType } from '@/shared/modules/filters/config/apiFilterRendererByType';
import options from './options';

const engagementLevel: MultiSelectFilterConfig = {
Expand All @@ -10,11 +12,10 @@ const engagementLevel: MultiSelectFilterConfig = {
options,
},
itemLabelRenderer(value: MultiSelectFilterValue): string {
return `Engagement level ${value?.value.join(',') || '...'}`;
return itemLabelRendererByType[FilterConfigType.MULTISELECT]('Engagement level', value);
},
apiFilterRenderer(value): any[] {
console.log(value);
return [];
apiFilterRenderer(value: MultiSelectFilterValue): any[] {
return apiFilterRendererByType[FilterConfigType.MULTISELECT]('score', value);
},
};

Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
import { FilterConfigType } from '@/shared/modules/filters/types/FilterConfig';
import { BooleanFilterConfig } from '@/shared/modules/filters/types/filterTypes/BooleanFilterConfig';
import {
BooleanFilterConfig,
BooleanFilterValue,
} from '@/shared/modules/filters/types/filterTypes/BooleanFilterConfig';
import { itemLabelRendererByType } from '@/shared/modules/filters/config/itemLabelRendererByType';
import { apiFilterRendererByType } from '@/shared/modules/filters/config/apiFilterRendererByType';

const enrichedMember: BooleanFilterConfig = {
id: 'enrichedMember',
label: 'Enriched member',
type: FilterConfigType.BOOLEAN,
options: {},
itemLabelRenderer(value): string {
return `Enriched member ${value?.value ? 'True' : 'False'}`;
itemLabelRenderer(value: BooleanFilterValue): string {
return itemLabelRendererByType[FilterConfigType.BOOLEAN]('Enriched member', value);
},
apiFilterRenderer(value): any[] {
console.log(value);
return [];
apiFilterRenderer(value: BooleanFilterValue): any[] {
return apiFilterRendererByType[FilterConfigType.BOOLEAN]('lastEnriched', value);
},
};

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import { FilterConfigType } from '@/shared/modules/filters/types/FilterConfig';
import { MultiSelectFilterConfig, MultiSelectFilterValue } from '@/shared/modules/filters/types/filterTypes/MultiSelectFilterConfig';
import { CrowdIntegrations } from '@/integrations/integrations-config';
import { itemLabelRendererByType } from '@/shared/modules/filters/config/itemLabelRendererByType';
import { apiFilterRendererByType } from '@/shared/modules/filters/config/apiFilterRendererByType';

const identities: MultiSelectFilterConfig = {
id: 'identities',
Expand All @@ -20,11 +22,10 @@ const identities: MultiSelectFilterConfig = {
],
},
itemLabelRenderer(value: MultiSelectFilterValue): string {
return `Identities ${value?.value.join(',') || '...'}`;
return itemLabelRendererByType[FilterConfigType.MULTISELECT]('Identities', value);
},
apiFilterRenderer(value): any[] {
console.log(value);
return [];
apiFilterRenderer(value: MultiSelectFilterValue): any[] {
return apiFilterRendererByType[FilterConfigType.MULTISELECT]('identities', value);
},
};

Expand Down
13 changes: 7 additions & 6 deletions frontend/src/modules/member/config/filters/joinedDate/config.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
import { FilterConfigType } from '@/shared/modules/filters/types/FilterConfig';
import { DateFilterConfig } from '@/shared/modules/filters/types/filterTypes/DateFilterConfig';
import { DateFilterConfig, DateFilterValue } from '@/shared/modules/filters/types/filterTypes/DateFilterConfig';
import { itemLabelRendererByType } from '@/shared/modules/filters/config/itemLabelRendererByType';
import { apiFilterRendererByType } from '@/shared/modules/filters/config/apiFilterRendererByType';

const joinedDate: DateFilterConfig = {
id: 'joinedDate',
label: 'Joined date',
type: FilterConfigType.DATE,
options: {},
itemLabelRenderer(value): string {
return `Joined date ${value.value || '...'}`;
itemLabelRenderer(value: DateFilterValue): string {
return itemLabelRendererByType[FilterConfigType.BOOLEAN]('Joined date', value);
},
apiFilterRenderer(value): any[] {
console.log(value);
return [];
apiFilterRenderer(value: DateFilterValue): any[] {
return apiFilterRendererByType[FilterConfigType.BOOLEAN]('joinedAt', value);
},
};

Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
import { FilterConfigType } from '@/shared/modules/filters/types/FilterConfig';
import { DateFilterConfig } from '@/shared/modules/filters/types/filterTypes/DateFilterConfig';
import { DateFilterConfig, DateFilterValue } from '@/shared/modules/filters/types/filterTypes/DateFilterConfig';
import { itemLabelRendererByType } from '@/shared/modules/filters/config/itemLabelRendererByType';
import { apiFilterRendererByType } from '@/shared/modules/filters/config/apiFilterRendererByType';

const lastActivityDate: DateFilterConfig = {
id: 'lastActivityDate',
label: 'Last activity date',
type: FilterConfigType.DATE,
options: {},
itemLabelRenderer(value): string {
return `Last activity date ${value.value || '...'}`;
itemLabelRenderer(value: DateFilterValue): string {
return itemLabelRendererByType[FilterConfigType.BOOLEAN]('Last activity date', value);
},
apiFilterRenderer(value): any[] {
console.log(value);
return [];
apiFilterRenderer(value: DateFilterValue): any[] {
return apiFilterRendererByType[FilterConfigType.BOOLEAN]('lastActive', value);
},
};

Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
import { NumberFilterConfig } from '@/shared/modules/filters/types/filterTypes/NumberFilterConfig';
import { NumberFilterConfig, NumberFilterValue } from '@/shared/modules/filters/types/filterTypes/NumberFilterConfig';
import { FilterConfigType } from '@/shared/modules/filters/types/FilterConfig';
import { itemLabelRendererByType } from '@/shared/modules/filters/config/itemLabelRendererByType';
import { apiFilterRendererByType } from '@/shared/modules/filters/config/apiFilterRendererByType';

const noOfActivities: NumberFilterConfig = {
id: 'noOfActivities',
label: '# of activities',
type: FilterConfigType.NUMBER,
options: {},
itemLabelRenderer(value): string {
return `# of activities ${value?.value || '...'}`;
itemLabelRenderer(value: NumberFilterValue): string {
return itemLabelRendererByType[FilterConfigType.NUMBER]('# of activities', value);
},
apiFilterRenderer({ value }): any[] {
return [
{ activityCount: { eq: value } },
];
apiFilterRenderer(value: NumberFilterValue): any[] {
return apiFilterRendererByType[FilterConfigType.NUMBER]('activityCount', value);
},
};

Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
import { NumberFilterConfig } from '@/shared/modules/filters/types/filterTypes/NumberFilterConfig';
import { NumberFilterConfig, NumberFilterValue } from '@/shared/modules/filters/types/filterTypes/NumberFilterConfig';
import { FilterConfigType } from '@/shared/modules/filters/types/FilterConfig';
import { itemLabelRendererByType } from '@/shared/modules/filters/config/itemLabelRendererByType';
import { apiFilterRendererByType } from '@/shared/modules/filters/config/apiFilterRendererByType';

const noOfOSSContributions: NumberFilterConfig = {
id: 'noOfOSSContributions',
label: '# of open source contributions',
type: FilterConfigType.NUMBER,
options: {},
itemLabelRenderer(value): string {
return `# of open source contributions ${value?.value || '...'}`;
itemLabelRenderer(value: NumberFilterValue): string {
return itemLabelRendererByType[FilterConfigType.NUMBER]('# of OSS contributions', value);
},
apiFilterRenderer({ value }): any[] {
console.log(value);
return [
{ numberOfOpenSourceContributions: { eq: value } },
];
apiFilterRenderer(value: NumberFilterValue): any[] {
return apiFilterRendererByType[FilterConfigType.NUMBER]('numberOfOpenSourceContributions', value);
},
};

Expand Down
13 changes: 7 additions & 6 deletions frontend/src/modules/member/config/filters/reach/config.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
import { NumberFilterConfig } from '@/shared/modules/filters/types/filterTypes/NumberFilterConfig';
import { NumberFilterConfig, NumberFilterValue } from '@/shared/modules/filters/types/filterTypes/NumberFilterConfig';
import { FilterConfigType } from '@/shared/modules/filters/types/FilterConfig';
import { itemLabelRendererByType } from '@/shared/modules/filters/config/itemLabelRendererByType';
import { apiFilterRendererByType } from '@/shared/modules/filters/config/apiFilterRendererByType';

const reach: NumberFilterConfig = {
id: 'reach',
label: 'Reach',
type: FilterConfigType.NUMBER,
options: {},
itemLabelRenderer(value): string {
return `Reach ${value?.value || '...'}`;
itemLabelRenderer(value: NumberFilterValue): string {
return itemLabelRendererByType[FilterConfigType.NUMBER]('Reach', value);
},
apiFilterRenderer(value): any[] {
console.log(value);
return [];
apiFilterRenderer(value: NumberFilterValue): any[] {
return apiFilterRendererByType[FilterConfigType.NUMBER]('reach', value);
},
};

Expand Down
9 changes: 5 additions & 4 deletions frontend/src/modules/member/config/filters/tags/config.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import { FilterConfigType } from '@/shared/modules/filters/types/FilterConfig';
import { MultiSelectFilterConfig, MultiSelectFilterValue } from '@/shared/modules/filters/types/filterTypes/MultiSelectFilterConfig';
import { itemLabelRendererByType } from '@/shared/modules/filters/config/itemLabelRendererByType';
import { apiFilterRendererByType } from '@/shared/modules/filters/config/apiFilterRendererByType';

const tags: MultiSelectFilterConfig = {
id: 'tags',
Expand All @@ -10,11 +12,10 @@ const tags: MultiSelectFilterConfig = {
options: [],
},
itemLabelRenderer(value: MultiSelectFilterValue): string {
return `Tags ${value?.value.join(',') || '...'}`;
return itemLabelRendererByType[FilterConfigType.MULTISELECT]('Active on', value);
},
apiFilterRenderer(value): any[] {
console.log(value);
return [];
apiFilterRenderer(value: MultiSelectFilterValue): any[] {
return apiFilterRendererByType[FilterConfigType.MULTISELECT]('tags', value);
},
};

Expand Down
29 changes: 29 additions & 0 deletions frontend/src/modules/member/config/saved-views/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { SavedView, SavedViewsConfig } from '@/shared/modules/saved-views/types/SavedViewsConfig';
import allMembers from './views/all-members';
import newAndActive from './views/new-and-active';
import slippingAway from './views/slipping-away';
import mostEngaged from './views/most-engaged';
import influential from './views/influential';
import teamMembers from './views/team-members';

import bot from './settings/bot';
import teamMember from './settings/teamMember';
import organization from './settings/organization';

export const memberSavedViews: SavedViewsConfig = {
defaultView: allMembers,
settings: {
bot,
teamMember,
organization,
},
};

// Hardcoded views until we have backend done for it
export const memberViews: SavedView[] = [
newAndActive,
slippingAway,
mostEngaged,
influential,
teamMembers,
];
15 changes: 15 additions & 0 deletions frontend/src/modules/member/config/saved-views/settings/bot.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { SavedViewsSetting } from '@/shared/modules/saved-views/types/SavedViewsConfig';
import { IncludeEnum } from '@/modules/member/config/saved-views/settings/types/IncludeEnum';
import { includeFilterRenderer } from '@/modules/member/config/saved-views/settings/common/includeFilterRenderer';

const bot: SavedViewsSetting<IncludeEnum> = {
defaultValue: IncludeEnum.EXCLUDE,
queryUrlParser(value: string): IncludeEnum {
return value as IncludeEnum;
},
apiFilterRenderer(value: IncludeEnum): any[] {
return includeFilterRenderer('isBot', value);
},
};

export default bot;
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { IncludeEnum } from '@/modules/member/config/saved-views/settings/types/IncludeEnum';

export const includeFilterRenderer = (property: string, value: IncludeEnum) => {
if (value === IncludeEnum.FILTER) {
return [
{
[property]: { eq: true },
},
];
}
if (value === IncludeEnum.EXCLUDE) {
return [
{ [property]: { not: true } },
];
}
return [];
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { SavedViewsSetting } from '@/shared/modules/saved-views/types/SavedViewsConfig';
import { includeFilterRenderer } from '@/modules/member/config/saved-views/settings/common/includeFilterRenderer';
import { IncludeEnum } from '@/modules/member/config/saved-views/settings/types/IncludeEnum';

const organization: SavedViewsSetting<IncludeEnum> = {
defaultValue: IncludeEnum.EXCLUDE,
queryUrlParser(value: string): IncludeEnum {
return value as IncludeEnum;
},
apiFilterRenderer(value: IncludeEnum): any[] {
return includeFilterRenderer('isOrganization', value);
},
};

export default organization;
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { SavedViewsSetting } from '@/shared/modules/saved-views/types/SavedViewsConfig';
import { includeFilterRenderer } from '@/modules/member/config/saved-views/settings/common/includeFilterRenderer';
import { IncludeEnum } from '@/modules/member/config/saved-views/settings/types/IncludeEnum';

const teamMember: SavedViewsSetting<IncludeEnum> = {
defaultValue: IncludeEnum.EXCLUDE,
queryUrlParser(value: string): IncludeEnum {
return value as IncludeEnum;
},
apiFilterRenderer(value: IncludeEnum): any[] {
return includeFilterRenderer('isTeamMember', value);
},
};

export default teamMember;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export enum IncludeEnum {
INCLUDE = 'include',
EXCLUDE = 'exclude',
FILTER = 'filter'
}
Loading