Skip to content

Commit 267c699

Browse files
authoredMay 4, 2021
fix: fix start campaign button (#952)
Reviewed-by: @ben-pr-p
1 parent 36bd4ae commit 267c699

File tree

3 files changed

+165
-138
lines changed

3 files changed

+165
-138
lines changed
 

‎src/config.js

-5
Original file line numberDiff line numberDiff line change
@@ -335,11 +335,6 @@ const validators = {
335335
example: "assignment.message.received,assignment.updated",
336336
default: ""
337337
}),
338-
DISABLE_CAMPAIGN_EDIT_TEXTERS: bool({
339-
desc: "Whether to disable showing the texters panel on campaign edit.",
340-
default: "false",
341-
isClient: true
342-
}),
343338
DISABLE_SIDEBAR_BADGES: bool({
344339
desc: "Whether to disable showing the badge counts on the admin sidebar.",
345340
default: "false",

‎src/containers/AdminCampaignEdit/index.jsx

+21-133
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import DialogContent from "@material-ui/core/DialogContent";
44
import DialogContentText from "@material-ui/core/DialogContentText";
55
import DialogTitle from "@material-ui/core/DialogTitle";
66
import { withTheme } from "@material-ui/core/styles";
7-
import gql from "graphql-tag";
87
import isEqual from "lodash/isEqual";
98
import pick from "lodash/pick";
109
import Avatar from "material-ui/Avatar";
@@ -26,6 +25,17 @@ import { camelCase, dataTest } from "../../lib/attributes";
2625
import { DateTime } from "../../lib/datetime";
2726
import theme from "../../styles/theme";
2827
import { loadData } from "../hoc/with-operations";
28+
import {
29+
ARCHIVE_CAMPAIGN,
30+
DELETE_JOB,
31+
EDIT_CAMPAIGN,
32+
GET_CAMPAIGN_JOBS,
33+
GET_EDIT_CAMPAIGN_DATA,
34+
GET_ORGANIZATION_ACTIONS,
35+
GET_ORGANIZATION_DATA,
36+
START_CAMPAIGN,
37+
UNARCHIVE_CAMPAIGN
38+
} from "./queries";
2939
import CampaignAutoassignModeForm from "./sections/CampaignAutoassignModeForm";
3040
import CampaignBasicsForm from "./sections/CampaignBasicsForm";
3141
import CampaignCannedResponsesForm from "./sections/CampaignCannedResponsesForm";
@@ -38,44 +48,6 @@ import CampaignTeamsForm from "./sections/CampaignTeamsForm";
3848
import CampaignTextersForm from "./sections/CampaignTextersForm";
3949
import CampaignTextingHoursForm from "./sections/CampaignTextingHoursForm";
4050

41-
const disableTexters = window.DISABLE_CAMPAIGN_EDIT_TEXTERS;
42-
43-
// TODO: replace with Fragment
44-
const campaignInfoFragment = `
45-
id
46-
title
47-
description
48-
dueBy
49-
isStarted
50-
isArchived
51-
datawarehouseAvailable
52-
customFields
53-
useDynamicAssignment
54-
logoImageUrl
55-
introHtml
56-
primaryColor
57-
textingHoursStart
58-
textingHoursEnd
59-
isAssignmentLimitedToTeams
60-
isAutoassignEnabled
61-
timezone
62-
teams {
63-
id
64-
title
65-
}
66-
interactionSteps {
67-
id
68-
questionText
69-
scriptOptions
70-
answerOption
71-
answerActions
72-
parentInteractionId
73-
isDeleted
74-
createdAt
75-
}
76-
editors
77-
`;
78-
7951
const extractStageAndStatus = (percentComplete) => {
8052
if (percentComplete > 100) {
8153
return `Filtering out landlines. ${percentComplete - 100}% complete`;
@@ -532,10 +504,7 @@ class AdminCampaignEdit extends React.Component {
532504
}
533505
];
534506

535-
return (disableTexters
536-
? sections.filter((section) => section.title !== "Texters")
537-
: sections
538-
).filter((section) => !section.exclude);
507+
return sections.filter((section) => !section.exclude);
539508
};
540509

541510
sectionSaveStatus = (section) => {
@@ -915,20 +884,7 @@ AdminCampaignEdit.propTypes = {
915884

916885
const queries = {
917886
pendingJobsData: {
918-
query: gql`
919-
query getCampaignJobs($campaignId: String!) {
920-
campaign(id: $campaignId) {
921-
id
922-
pendingJobs {
923-
id
924-
jobType
925-
assigned
926-
status
927-
resultMessage
928-
}
929-
}
930-
}
931-
`,
887+
query: GET_CAMPAIGN_JOBS,
932888
options: (ownProps) => ({
933889
variables: {
934890
campaignId: ownProps.match.params.campaignId
@@ -937,11 +893,7 @@ const queries = {
937893
})
938894
},
939895
campaignData: {
940-
query: gql`query getCampaign($campaignId: String!) {
941-
campaign(id: $campaignId) {
942-
${campaignInfoFragment}
943-
}
944-
}`,
896+
query: GET_EDIT_CAMPAIGN_DATA,
945897
options: (ownProps) => ({
946898
variables: {
947899
campaignId: ownProps.match.params.campaignId
@@ -950,54 +902,15 @@ const queries = {
950902
})
951903
},
952904
organizationData: {
953-
query: gql`
954-
query getOrganizationData($organizationId: String!) {
955-
organization(id: $organizationId) {
956-
id
957-
uuid
958-
teams {
959-
id
960-
title
961-
}
962-
${
963-
disableTexters
964-
? ""
965-
: `
966-
texters: people {
967-
id
968-
firstName
969-
lastName
970-
displayName
971-
}
972-
`
973-
}
974-
numbersApiKey
975-
campaigns(cursor: { offset: 0, limit: 5000 }) {
976-
campaigns {
977-
id
978-
title
979-
createdAt
980-
}
981-
}
982-
}
983-
}
984-
`,
905+
query: GET_ORGANIZATION_DATA,
985906
options: (ownProps) => ({
986907
variables: {
987908
organizationId: ownProps.match.params.organizationId
988909
}
989910
})
990911
},
991912
availableActionsData: {
992-
query: gql`
993-
query getActions($organizationId: String!) {
994-
availableActions(organizationId: $organizationId) {
995-
name
996-
display_name
997-
instructions
998-
}
999-
}
1000-
`,
913+
query: GET_ORGANIZATION_ACTIONS,
1001914
options: (ownProps) => ({
1002915
variables: {
1003916
organizationId: ownProps.match.params.organizationId
@@ -1007,53 +920,28 @@ const queries = {
1007920
}
1008921
};
1009922

1010-
// Right now we are copying the result fields instead of using a fragment because of https://github.com/apollostack/apollo-client/issues/451
1011923
const mutations = {
1012924
archiveCampaign: (_ownProps) => (campaignId) => ({
1013-
mutation: gql`mutation archiveCampaign($campaignId: String!) {
1014-
archiveCampaign(id: $campaignId) {
1015-
${campaignInfoFragment}
1016-
}
1017-
}`,
925+
mutation: ARCHIVE_CAMPAIGN,
1018926
variables: { campaignId }
1019927
}),
1020928
unarchiveCampaign: (_ownProps) => (campaignId) => ({
1021-
mutation: gql`mutation unarchiveCampaign($campaignId: String!) {
1022-
unarchiveCampaign(id: $campaignId) {
1023-
${campaignInfoFragment}
1024-
}
1025-
}`,
929+
mutation: UNARCHIVE_CAMPAIGN,
1026930
variables: { campaignId }
1027931
}),
1028932
startCampaign: (_ownProps) => (campaignId) => ({
1029-
mutation: gql`mutation startCampaign($campaignId: String!) {
1030-
startCampaign(id: $campaignId) {
1031-
${campaignInfoFragment}
1032-
}
1033-
}`,
933+
mutation: START_CAMPAIGN,
1034934
variables: { campaignId }
1035935
}),
1036936
editCampaign: (_ownProps) => (campaignId, campaign) => ({
1037-
mutation: gql`
1038-
mutation editCampaign($campaignId: String!, $campaign: CampaignInput!) {
1039-
editCampaign(id: $campaignId, campaign: $campaign) {
1040-
${campaignInfoFragment}
1041-
}
1042-
},
1043-
`,
937+
mutation: EDIT_CAMPAIGN,
1044938
variables: {
1045939
campaignId,
1046940
campaign
1047941
}
1048942
}),
1049943
deleteJob: (ownProps) => (jobId) => ({
1050-
mutation: gql`
1051-
mutation deleteJob($campaignId: String!, $id: String!) {
1052-
deleteJob(campaignId: $campaignId, id: $id) {
1053-
id
1054-
}
1055-
}
1056-
`,
944+
mutation: DELETE_JOB,
1057945
variables: {
1058946
campaignId: ownProps.match.params.campaignId,
1059947
id: jobId
+144
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
import gql from "graphql-tag";
2+
3+
export const GET_ORGANIZATION_DATA = gql`
4+
query getOrganizationData($organizationId: String!) {
5+
organization(id: $organizationId) {
6+
id
7+
uuid
8+
teams {
9+
id
10+
title
11+
}
12+
texters: people {
13+
id
14+
firstName
15+
lastName
16+
displayName
17+
}
18+
numbersApiKey
19+
campaigns(cursor: { offset: 0, limit: 5000 }) {
20+
campaigns {
21+
id
22+
title
23+
createdAt
24+
}
25+
}
26+
}
27+
}
28+
`;
29+
30+
export const GET_ORGANIZATION_ACTIONS = gql`
31+
query getActions($organizationId: String!) {
32+
availableActions(organizationId: $organizationId) {
33+
name
34+
display_name
35+
instructions
36+
}
37+
}
38+
`;
39+
40+
export const GET_CAMPAIGN_JOBS = gql`
41+
query getCampaignJobs($campaignId: String!) {
42+
campaign(id: $campaignId) {
43+
id
44+
pendingJobs {
45+
id
46+
jobType
47+
assigned
48+
status
49+
resultMessage
50+
}
51+
}
52+
}
53+
`;
54+
55+
export const DELETE_JOB = gql`
56+
mutation deleteJob($campaignId: String!, $id: String!) {
57+
deleteJob(campaignId: $campaignId, id: $id) {
58+
id
59+
}
60+
}
61+
`;
62+
63+
export const EditCampaignFragment = gql`
64+
fragment EditCampaignFragment on Campaign {
65+
id
66+
title
67+
description
68+
dueBy
69+
isStarted
70+
isArchived
71+
contactsCount
72+
datawarehouseAvailable
73+
customFields
74+
useDynamicAssignment
75+
logoImageUrl
76+
introHtml
77+
primaryColor
78+
textingHoursStart
79+
textingHoursEnd
80+
isAssignmentLimitedToTeams
81+
isAutoassignEnabled
82+
timezone
83+
teams {
84+
id
85+
title
86+
}
87+
interactionSteps {
88+
id
89+
questionText
90+
scriptOptions
91+
answerOption
92+
answerActions
93+
parentInteractionId
94+
isDeleted
95+
createdAt
96+
}
97+
editors
98+
}
99+
`;
100+
101+
export const GET_EDIT_CAMPAIGN_DATA = gql`
102+
query getCampaign($campaignId: String!) {
103+
campaign(id: $campaignId) {
104+
...EditCampaignFragment
105+
}
106+
}
107+
${EditCampaignFragment}
108+
`;
109+
110+
export const ARCHIVE_CAMPAIGN = gql`
111+
mutation archiveCampaign($campaignId: String!) {
112+
archiveCampaign(id: $campaignId) {
113+
...EditCampaignFragment
114+
}
115+
}
116+
${EditCampaignFragment}
117+
`;
118+
119+
export const UNARCHIVE_CAMPAIGN = gql`
120+
mutation unarchiveCampaign($campaignId: String!) {
121+
unarchiveCampaign(id: $campaignId) {
122+
...EditCampaignFragment
123+
}
124+
}
125+
${EditCampaignFragment}
126+
`;
127+
128+
export const START_CAMPAIGN = gql`
129+
mutation startCampaign($campaignId: String!) {
130+
startCampaign(id: $campaignId) {
131+
...EditCampaignFragment
132+
}
133+
}
134+
${EditCampaignFragment}
135+
`;
136+
137+
export const EDIT_CAMPAIGN = gql`
138+
mutation editCampaign($campaignId: String!, $campaign: CampaignInput!) {
139+
editCampaign(id: $campaignId, campaign: $campaign) {
140+
...EditCampaignFragment
141+
}
142+
}
143+
${EditCampaignFragment}
144+
`;

0 commit comments

Comments
 (0)
Please sign in to comment.