diff --git a/package.json b/package.json
index 9465b75ee..b2386e1b6 100644
--- a/package.json
+++ b/package.json
@@ -89,7 +89,7 @@
"moment-duration-format": "^2.3.2",
"moment-timezone": "^0.5.33",
"node-sass": "^7.0.1",
- "openstack-uicore-foundation": "4.2.21",
+ "openstack-uicore-foundation": "4.2.22",
"p-limit": "^6.1.0",
"path-browserify": "^1.0.1",
"postcss-loader": "^6.2.1",
@@ -130,7 +130,7 @@
"style-loader": "^3.3.1",
"superagent": "^6.1.0",
"sweetalert2": "^8.15.2",
- "urijs": "^1.19.1",
+ "urijs": "1.19.11",
"url-loader": "^4.1.1",
"validator": "^9.4.1",
"video.js": "^7.8.2",
diff --git a/src/actions/attendee-actions.js b/src/actions/attendee-actions.js
index f78b6e8e9..5383c9a67 100644
--- a/src/actions/attendee-actions.js
+++ b/src/actions/attendee-actions.js
@@ -50,6 +50,8 @@ import {
TEN
} from "../utils/constants";
+URI.escapeQuerySpace = false;
+
export const REQUEST_ATTENDEES = "REQUEST_ATTENDEES";
export const RECEIVE_ATTENDEES = "RECEIVE_ATTENDEES";
export const RECEIVE_ATTENDEE = "RECEIVE_ATTENDEE";
diff --git a/src/actions/badge-actions.js b/src/actions/badge-actions.js
index c2f01bd98..5715785c9 100644
--- a/src/actions/badge-actions.js
+++ b/src/actions/badge-actions.js
@@ -28,6 +28,7 @@ import {
fetchErrorHandler,
getCSV
} from "openstack-uicore-foundation/lib/utils/actions";
+import URI from "urijs";
import pLimit from "p-limit";
import history from "../history";
import { saveMarketingSetting } from "./marketing-actions";
@@ -41,6 +42,8 @@ import {
TEN
} from "../utils/constants";
+URI.escapeQuerySpace = false;
+
export const BADGE_DELETED = "BADGE_DELETED";
export const FEATURE_BADGE_REMOVED = "FEATURE_BADGE_REMOVED";
export const FEATURE_BADGE_ADDED = "FEATURE_BADGE_ADDED";
@@ -889,12 +892,15 @@ const normalizeBadgeType = (entity) => {
export const queryBadgeFeatures = _.debounce(
async (summitId, input, callback) => {
const accessToken = await getAccessTokenSafely();
-
+ const endpoint = URI(
+ `${window.API_BASE_URL}/api/v1/summits/${summitId}/badge-feature-types`
+ );
input = escapeFilterValue(input);
-
- fetch(
- `${window.API_BASE_URL}/api/v1/summits/${summitId}/badge-feature-types?filter=name=@${input}&access_token=${accessToken}`
- )
+ endpoint.addQuery("access_token", accessToken);
+ if (input) {
+ endpoint.addQuery("filter", `name=@${input}`);
+ }
+ fetch(endpoint)
.then(fetchResponseHandler)
.then((json) => {
const options = [...json.data];
diff --git a/src/actions/company-actions.js b/src/actions/company-actions.js
index 499411c34..645abf5f8 100644
--- a/src/actions/company-actions.js
+++ b/src/actions/company-actions.js
@@ -27,6 +27,7 @@ import {
fetchResponseHandler,
fetchErrorHandler
} from "openstack-uicore-foundation/lib/utils/actions";
+import URI from "urijs";
import history from "../history";
import { getAccessTokenSafely } from "../utils/methods";
import {
@@ -36,6 +37,8 @@ import {
DEFAULT_PER_PAGE
} from "../utils/constants";
+URI.escapeQuerySpace = false;
+
export const REQUEST_COMPANIES = "REQUEST_COMPANIES";
export const RECEIVE_COMPANIES = "RECEIVE_COMPANIES";
export const RECEIVE_COMPANY = "RECEIVE_COMPANY";
@@ -268,16 +271,18 @@ const normalizeEntity = (entity) => {
export const queryCompanies = _.debounce(async (input, callback) => {
const accessToken = await getAccessTokenSafely();
-
+ const endpoint = URI(`${window.API_BASE_URL}/api/v1/companies`);
input = escapeFilterValue(input);
-
- fetch(
- `${window.API_BASE_URL}/api/v1/companies?filter=name=@${input}&access_token=${accessToken}&fields=id,name&relations=none`
- )
+ endpoint.addQuery("access_token", accessToken);
+ endpoint.addQuery("fields", "id,name");
+ endpoint.addQuery("relations", "none");
+ if (input) {
+ endpoint.addQuery("filter", `name=@${input}`);
+ }
+ fetch(endpoint)
.then(fetchResponseHandler)
.then((json) => {
const options = [...json.data];
-
callback(options);
})
.catch(fetchErrorHandler);
diff --git a/src/actions/email-actions.js b/src/actions/email-actions.js
index 99a11f928..3aede418d 100644
--- a/src/actions/email-actions.js
+++ b/src/actions/email-actions.js
@@ -39,6 +39,8 @@ import {
HUNDRED_PER_PAGE
} from "../utils/constants";
+URI.escapeQuerySpace = false;
+
export const REQUEST_TEMPLATES = "REQUEST_TEMPLATES";
export const RECEIVE_TEMPLATES = "RECEIVE_TEMPLATES";
export const RECEIVE_TEMPLATE = "RECEIVE_TEMPLATE";
@@ -334,7 +336,8 @@ export const getSentEmails =
});
};
-export const updateTemplateJsonData = (data) => async (dispatch) => dispatch(createAction(UPDATE_JSON_DATA)(data));
+export const updateTemplateJsonData = (data) => async (dispatch) =>
+ dispatch(createAction(UPDATE_JSON_DATA)(data));
/** ********************************************************************************************************* */
/* CLIENTS */
@@ -391,7 +394,8 @@ export const getMarketingEmailSettings =
};
export const saveMarketingEmailSettings =
- (emailMarketingSettings) => async (dispatch) => Promise.all(
+ (emailMarketingSettings) => async (dispatch) =>
+ Promise.all(
Object.keys(emailMarketingSettings).map((m) => {
let value = emailMarketingSettings[m].value ?? "";
const file = emailMarketingSettings[m].file ?? null;
@@ -421,15 +425,15 @@ export const customErrorHandler = (err, res) => (dispatch) => {
case ERROR_CODE_412:
if (Array.isArray(err.response.body)) {
err.response.body.forEach((er) => {
- msg += `${er }
`;
+ msg += `${er}
`;
});
} else {
for (const [key, value] of Object.entries(err.response.body)) {
if (isNaN(key)) {
- msg += `${key }: `;
+ msg += `${key}: `;
}
- msg += `${value }
`;
+ msg += `${value}
`;
}
}
diff --git a/src/actions/event-actions.js b/src/actions/event-actions.js
index 382d90b78..d2f845a70 100644
--- a/src/actions/event-actions.js
+++ b/src/actions/event-actions.js
@@ -33,6 +33,7 @@ import {
fetchErrorHandler
} from "openstack-uicore-foundation/lib/utils/actions";
import { epochToMomentTimeZone } from "openstack-uicore-foundation/lib/utils/methods";
+import URI from "urijs";
import history from "../history";
import {
checkOrFilter,
@@ -49,11 +50,14 @@ import {
DEFAULT_ORDER_DIR,
DEFAULT_PER_PAGE,
EXPORT_PAGE_SIZE_200,
+ FIVE_PER_PAGE,
HOUR_AND_HALF,
SECONDS_TO_MINUTES
} from "../utils/constants";
import { getIdValue } from "../utils/summitUtils";
+URI.escapeQuerySpace = false;
+
export const REQUEST_EVENTS = "REQUEST_EVENTS";
export const RECEIVE_EVENTS = "RECEIVE_EVENTS";
export const RECEIVE_EVENT = "RECEIVE_EVENT";
@@ -1481,16 +1485,18 @@ export const getEventComments =
export const queryEvents = _.debounce(async (summitId, input, callback) => {
const accessToken = await getAccessTokenSafely();
-
+ const endpoint = URI(
+ `${window.API_BASE_URL}/api/v1/summits/${summitId}/events`
+ );
input = escapeFilterValue(input);
-
- fetch(
- `${window.API_BASE_URL}/api/v1/summits/${summitId}/events?filter=title=@${input}&access_token=${accessToken}`
- )
+ endpoint.addQuery("access_token", accessToken);
+ if (input) {
+ endpoint.addQuery("filter", `title=@${input}`);
+ }
+ fetch(endpoint)
.then(fetchResponseHandler)
.then((json) => {
const options = [...json.data];
-
callback(options);
})
.catch(fetchErrorHandler);
@@ -1499,20 +1505,19 @@ export const queryEvents = _.debounce(async (summitId, input, callback) => {
export const queryEventsWithPrivateRSVP = _.debounce(
async (summitId, input, callback) => {
const accessToken = await getAccessTokenSafely();
-
+ const endpoint = URI(
+ `${window.API_BASE_URL}/api/v1/summits/${summitId}/events`
+ );
input = escapeFilterValue(input);
-
- fetch(
- `${window.API_BASE_URL}/api/v1/summits/${summitId}/events${
- input
- ? `?filter[]=title=@${input}&filter[]=rsvp_type==Private`
- : "?filter[]=rsvp_type==Private"
- }&access_token=${accessToken}`
- )
+ endpoint.addQuery("access_token", accessToken);
+ endpoint.addQuery("filter[]", "rsvp_type==Private");
+ if (input) {
+ endpoint.addQuery("filter[]", `title=@${input}`);
+ }
+ fetch(endpoint)
.then(fetchResponseHandler)
.then((json) => {
const options = [...json.data];
-
callback(options);
})
.catch(fetchErrorHandler);
@@ -1521,11 +1526,15 @@ export const queryEventsWithPrivateRSVP = _.debounce(
);
export const querySpeakerCompany = _.debounce(async (input, callback) => {
+ const endpoint = URI(
+ `${window.API_BASE_URL}/api/public/v1/speakers/all/companies`
+ );
input = escapeFilterValue(input);
-
- fetch(
- `${window.API_BASE_URL}/api/public/v1/speakers/all/companies?filter[]=company@@${input}&order=company`
- )
+ endpoint.addQuery("order", "company");
+ if (input) {
+ endpoint.addQuery("filter[]", `company@@${input}`);
+ }
+ fetch(endpoint)
.then(fetchResponseHandler)
.then((json) => {
const options = [...json.data].map(({ company }) => ({
@@ -1538,11 +1547,15 @@ export const querySpeakerCompany = _.debounce(async (input, callback) => {
}, DEBOUNCE_WAIT);
export const querySubmitterCompany = _.debounce(async (input, callback) => {
+ const endpoint = URI(
+ `${window.API_BASE_URL}/api/public/v1/members/all/companies`
+ );
input = escapeFilterValue(input);
-
- fetch(
- `${window.API_BASE_URL}/api/public/v1/members/all/companies?filter[]=company@@${input}&order=company`
- )
+ endpoint.addQuery("order", "company");
+ if (input) {
+ endpoint.addQuery("filter[]", `company@@${input}`);
+ }
+ fetch(endpoint)
.then(fetchResponseHandler)
.then((json) => {
const options = [...json.data].map(({ company }) => ({
@@ -1559,10 +1572,35 @@ export const queryAllCompanies = _.debounce(async (input, callback) => {
const accessToken = await getAccessTokenSafely();
+ const speakerEndpoint = URI(
+ `${window.API_BASE_URL}/api/public/v1/speakers/all/companies`
+ );
+ speakerEndpoint.addQuery("order", "company");
+ if (input) {
+ speakerEndpoint.addQuery("filter[]", `company@@${input}`);
+ }
+
+ const submitterEndpoint = URI(
+ `${window.API_BASE_URL}/api/public/v1/members/all/companies`
+ );
+ submitterEndpoint.addQuery("order", "company");
+ if (input) {
+ submitterEndpoint.addQuery("filter[]", `company@@${input}`);
+ }
+
+ const companyEndpoint = URI(`${window.API_BASE_URL}/api/v1/companies`);
+ companyEndpoint.addQuery("access_token", accessToken);
+ companyEndpoint.addQuery("order", "name");
+ companyEndpoint.addQuery("page", 1);
+ companyEndpoint.addQuery("per_page", FIVE_PER_PAGE);
+ if (input) {
+ companyEndpoint.addQuery("filter[]", `name@@${input}`);
+ }
+
const urls = [
- `${window.API_BASE_URL}/api/public/v1/speakers/all/companies?filter[]=company@@${input}&order=company`,
- `${window.API_BASE_URL}/api/public/v1/members/all/companies?filter[]=company@@${input}&order=company`,
- `${window.API_BASE_URL}/api/v1/companies?filter[]=name@@${input}&order=name&page=1&per_page=5&access_token=${accessToken}`
+ speakerEndpoint.toString(),
+ speakerEndpoint.toString(),
+ submitterEndpoint.toString()
];
try {
diff --git a/src/actions/filter-criteria-actions.js b/src/actions/filter-criteria-actions.js
index b4119223b..34212910e 100644
--- a/src/actions/filter-criteria-actions.js
+++ b/src/actions/filter-criteria-actions.js
@@ -34,6 +34,8 @@ import {
FIFTEEN_PER_PAGE
} from "../utils/constants";
+URI.escapeQuerySpace = false;
+
export const FILTER_CRITERIA_ADDED = "FILTER_CRITERIA_ADDED";
export const FILTER_CRITERIA_DELETED = "FILTER_CRITERIA_DELETED";
diff --git a/src/actions/media-upload-actions.js b/src/actions/media-upload-actions.js
index 055292280..dbeef0f2e 100644
--- a/src/actions/media-upload-actions.js
+++ b/src/actions/media-upload-actions.js
@@ -31,6 +31,8 @@ import history from "../history";
import { getAccessTokenSafely } from "../utils/methods";
import { DEBOUNCE_WAIT, DEFAULT_PER_PAGE } from "../utils/constants";
+URI.escapeQuerySpace = false;
+
export const REQUEST_MEDIA_UPLOADS = "REQUEST_MEDIA_UPLOADS";
export const RECEIVE_MEDIA_UPLOADS = "RECEIVE_MEDIA_UPLOADS";
export const RECEIVE_MEDIA_UPLOAD = "RECEIVE_MEDIA_UPLOAD";
diff --git a/src/actions/selection-plan-actions.js b/src/actions/selection-plan-actions.js
index 92237fdba..3c24ec0fb 100644
--- a/src/actions/selection-plan-actions.js
+++ b/src/actions/selection-plan-actions.js
@@ -26,6 +26,7 @@ import {
authErrorHandler,
postFile
} from "openstack-uicore-foundation/lib/utils/actions";
+import URI from "urijs";
import history from "../history";
import {
getAccessTokenSafely,
@@ -34,7 +35,9 @@ import {
fetchErrorHandler
} from "../utils/methods";
import { saveMarketingSetting } from "./marketing-actions";
-import { DEFAULT_PER_PAGE } from "../utils/constants";
+import { DEBOUNCE_WAIT, DEFAULT_PER_PAGE } from "../utils/constants";
+
+URI.escapeQuerySpace = false;
export const REQUEST_SELECTION_PLANS = "REQUEST_SELECTION_PLANS";
export const RECEIVE_SELECTION_PLANS = "RECEIVE_SELECTION_PLANS";
@@ -62,8 +65,6 @@ export const SELECTION_PLAN_PROGRESS_FLAG_REMOVED =
export const SELECTION_PLAN_PROGRESS_FLAG_ORDER_UPDATED =
"SELECTION_PLAN_PROGRESS_FLAG_ORDER_UPDATED";
-const callDelay = 500; // milliseconds
-
export const getSelectionPlans =
(term = "", page = 1, order = "id", orderDir = 1) =>
async (dispatch, getState) => {
@@ -698,21 +699,23 @@ export const deleteRatingType =
export const querySelectionPlanExtraQuestions = _.debounce(
async (summitId, input, callback) => {
const accessToken = await getAccessTokenSafely();
+ const endpoint = URI(
+ `${window.API_BASE_URL}/api/v1/summits/${summitId}/selection-plan-extra-questions`
+ );
input = escapeFilterValue(input);
- const filters = encodeURIComponent(`name=@${input}`);
-
- fetch(
- `${window.API_BASE_URL}/api/v1/summits/${summitId}/selection-plan-extra-questions?filter=${filters}&&access_token=${accessToken}`
- )
+ endpoint.addQuery("access_token", accessToken);
+ if (input) {
+ endpoint.addQuery("filter", `name=@${input}`);
+ }
+ fetch(endpoint)
.then(fetchResponseHandler)
.then((json) => {
const options = [...json.data];
-
callback(options);
})
.catch(fetchErrorHandler);
},
- callDelay
+ DEBOUNCE_WAIT
);
export const assignExtraQuestion2SelectionPlan =
diff --git a/src/actions/sponsor-actions.js b/src/actions/sponsor-actions.js
index c48e8a77f..64db0917a 100644
--- a/src/actions/sponsor-actions.js
+++ b/src/actions/sponsor-actions.js
@@ -30,6 +30,7 @@ import {
postFile
} from "openstack-uicore-foundation/lib/utils/actions";
import _ from "lodash";
+import URI from "urijs";
import { getAccessTokenSafely } from "../utils/methods";
import { normalizeLeadReportSettings } from "../models/lead-report-settings";
import history from "../history";
@@ -43,6 +44,8 @@ import {
} from "../utils/constants";
import { snackbarErrorHandler, snackbarSuccessHandler } from "./base-actions";
+URI.escapeQuerySpace = false;
+
export const REQUEST_SPONSORS = "REQUEST_SPONSORS";
export const RECEIVE_SPONSORS = "RECEIVE_SPONSORS";
export const RECEIVE_SPONSOR = "RECEIVE_SPONSOR";
@@ -175,19 +178,24 @@ export const SPONSOR_LEAD_REPORT_SETTINGS_UPDATED =
export const querySponsors = _.debounce(async (input, summitId, callback) => {
const accessToken = await getAccessTokenSafely();
-
+ const endpoint = URI(
+ `${window.API_BASE_URL}/api/v2/summits/${summitId}/sponsors`
+ );
const escapedInput = escapeFilterValue(input);
-
- fetch(
- `${window.API_BASE_URL}/api/v2/summits/${summitId}/sponsors?filter=company_name=@${escapedInput}&access_token=${accessToken}&fields=id,company.name,company.id&relations=company&expand=company`
- )
+ endpoint.addQuery("access_token", accessToken);
+ endpoint.addQuery("fields", "id,company.name,company.id");
+ endpoint.addQuery("relations", "company");
+ endpoint.addQuery("expand", "company");
+ if (escapedInput) {
+ endpoint.addQuery("filter", `company_name=@${escapedInput}`);
+ }
+ fetch(endpoint)
.then(fetchResponseHandler)
.then((json) => {
const options = [...json.data].map((sp) => ({
id: sp.id,
name: sp.company.name
}));
-
callback(options);
})
.catch(fetchErrorHandler);
@@ -2251,16 +2259,19 @@ export const deleteSponsorSocialNetwork =
export const querySummitSponsorships = _.debounce(
async (summitId, input, callback) => {
const accessToken = await getAccessTokenSafely();
-
+ const endpoint = URI(
+ `${window.API_BASE_URL}/api/v1/summits/${summitId}/sponsorships-types`
+ );
input = escapeFilterValue(input);
-
- fetch(
- `${window.API_BASE_URL}/api/v1/summits/${summitId}/sponsorships-types?filter=name=@${input}&access_token=${accessToken}&expand=type`
- )
+ endpoint.addQuery("access_token", accessToken);
+ endpoint.addQuery("expand", "type");
+ if (input) {
+ endpoint.addQuery("filter", `name=@${input}`);
+ }
+ fetch(endpoint)
.then(fetchResponseHandler)
.then((json) => {
const options = [...json.data];
-
callback(options);
})
.catch(fetchErrorHandler);
@@ -2271,12 +2282,11 @@ export const querySummitSponsorships = _.debounce(
export const querySummitAddons = _.debounce(
async (input, summitId, callback) => {
const accessToken = await getAccessTokenSafely();
-
- input = escapeFilterValue(input);
-
- fetch(
- `${window.API_BASE_URL}/api/v1/summits/${summitId}/add-ons/metadata?access_token=${accessToken}`
- )
+ const endpoint = URI(
+ `${window.API_BASE_URL}/api/v1/summits/${summitId}/add-ons/metadata`
+ );
+ endpoint.addQuery("access_token", accessToken);
+ fetch(endpoint)
.then(fetchResponseHandler)
.then((data) => {
callback(data);
@@ -2293,12 +2303,22 @@ export const querySponsorAddons = async (
callback
) => {
const accessToken = await getAccessTokenSafely();
-
try {
const promises = sponsorshipIds.map((sponsorshipId) => {
- const url = `${window.API_BASE_URL}/api/v1/summits/${summitId}/sponsors/${sponsorId}/sponsorships/${sponsorshipId}/add-ons?access_token=${accessToken}&fields=id,name,sponsorship.type,sponsorship.type.id,sponsorship.type.type.name&expand=sponsorship,sponsorship.type,sponsorship.type.type&relations=sponsorship.none`;
-
- return fetch(url)
+ const endpoint = URI(
+ `${window.API_BASE_URL}/api/v1/summits/${summitId}/sponsors/${sponsorId}/sponsorships/${sponsorshipId}/add-ons`
+ );
+ endpoint.addQuery("access_token", accessToken);
+ endpoint.addQuery(
+ "fields",
+ "id,name,sponsorship.type,sponsorship.type.id,sponsorship.type.type.name"
+ );
+ endpoint.addQuery(
+ "expand",
+ "sponsorship,sponsorship.type,sponsorship.type.type"
+ );
+ endpoint.addQuery("relations", "sponsorship.none");
+ return fetch(endpoint)
.then(fetchResponseHandler)
.then((json) => json.data)
.catch((error) => {
@@ -2306,7 +2326,6 @@ export const querySponsorAddons = async (
return [];
});
});
-
const results = await Promise.all(promises);
const allAddons = results.flat();
callback(allAddons);
diff --git a/src/actions/sponsorship-actions.js b/src/actions/sponsorship-actions.js
index 456ea92c4..e2d6d0721 100644
--- a/src/actions/sponsorship-actions.js
+++ b/src/actions/sponsorship-actions.js
@@ -27,9 +27,16 @@ import {
fetchResponseHandler,
fetchErrorHandler
} from "openstack-uicore-foundation/lib/utils/actions";
+import URI from "urijs";
import history from "../history";
import { getAccessTokenSafely } from "../utils/methods";
-import { DEBOUNCE_WAIT, DEFAULT_PER_PAGE } from "../utils/constants";
+import {
+ DEBOUNCE_WAIT,
+ DEFAULT_PER_PAGE,
+ MAX_PER_PAGE
+} from "../utils/constants";
+
+URI.escapeQuerySpace = false;
export const REQUEST_SPONSORSHIPS = "REQUEST_SPONSORSHIPS";
export const RECEIVE_SPONSORSHIPS = "RECEIVE_SPONSORSHIPS";
@@ -169,16 +176,16 @@ const normalizeSponsorship = (entity) => {
export const querySponsorships = _.debounce(async (input, callback) => {
const accessToken = await getAccessTokenSafely();
-
+ const endpoint = URI(`${window.API_BASE_URL}/api/v1/sponsorship-types`);
input = escapeFilterValue(input);
-
- fetch(
- `${window.API_BASE_URL}/api/v1/sponsorship-types?filter=name=@${input}&access_token=${accessToken}`
- )
+ endpoint.addQuery("access_token", accessToken);
+ if (input) {
+ endpoint.addQuery("filter", `name=@${input}`);
+ }
+ fetch(endpoint)
.then(fetchResponseHandler)
.then((json) => {
const options = [...json.data];
-
callback(options);
})
.catch(fetchErrorHandler);
@@ -187,20 +194,22 @@ export const querySponsorships = _.debounce(async (input, callback) => {
export const querySponsorshipsBySummit = _.debounce(
async (input, summitId, callback) => {
const accessToken = await getAccessTokenSafely();
-
+ const endpoint = URI(
+ `${window.API_BASE_URL}/api/v1/summits/${summitId}/sponsorships-types`
+ );
input = escapeFilterValue(input);
-
- const url = `${
- window.API_BASE_URL
- }/api/v1/summits/${summitId}/sponsorships-types?page=1&per_page=100&access_token=${accessToken}&expand=type&order=%2Bname${
- input ? `&filter=name=@${input}` : ""
- }`;
-
- fetch(url)
+ endpoint.addQuery("access_token", accessToken);
+ endpoint.addQuery("page", 1);
+ endpoint.addQuery("per_page", MAX_PER_PAGE);
+ endpoint.addQuery("expand", "type");
+ endpoint.addQuery("order", "+name");
+ if (input) {
+ endpoint.addQuery("filter", `name=@${input}`);
+ }
+ fetch(endpoint)
.then(fetchResponseHandler)
.then((json) => {
const options = [...json.data];
-
callback(options);
})
.catch(fetchErrorHandler);
diff --git a/src/actions/track-chair-actions.js b/src/actions/track-chair-actions.js
index 1b80fc506..db99e0c26 100644
--- a/src/actions/track-chair-actions.js
+++ b/src/actions/track-chair-actions.js
@@ -22,17 +22,21 @@ import {
startLoading,
stopLoading
} from "openstack-uicore-foundation/lib/utils/actions";
+import URI from "urijs";
import {
fetchErrorHandler,
fetchResponseHandler,
getAccessTokenSafely
} from "../utils/methods";
import {
+ DEBOUNCE_WAIT,
DEFAULT_ORDER_DIR,
DEFAULT_PER_PAGE,
DOUBLE_PER_PAGE
} from "../utils/constants";
+URI.escapeQuerySpace = false;
+
export const REQUEST_TRACK_CHAIRS = "REQUEST_TRACK_CHAIRS";
export const RECEIVE_TRACK_CHAIRS = "RECEIVE_TRACK_CHAIRS";
export const TRACK_CHAIR_UPDATED = "TRACK_CHAIR_UPDATED";
@@ -55,8 +59,6 @@ export const REORDER_LIST = "REORDER_LIST";
export const REVERT_LISTS = "REVERT_LISTS";
export const TEAM_LIST_UPDATED = "TEAM_LIST_UPDATED";
-const callDelay = 500; // miliseconds
-
export const getTrackChairs =
(
trackId = null,
@@ -284,21 +286,23 @@ export const getProgressFlags = () => async (dispatch, getState) => {
export const querySummitProgressFlags = _.debounce(
async (summitId, input, callback) => {
const accessToken = await getAccessTokenSafely();
+ const endpoint = URI(
+ `${window.API_BASE_URL}/api/v1/summits/${summitId}/presentation-action-types`
+ );
input = escapeFilterValue(input);
- const filters = encodeURIComponent(`label=@${input}`);
-
- fetch(
- `${window.API_BASE_URL}/api/v1/summits/${summitId}/presentation-action-types?filter=${filters}&&access_token=${accessToken}`
- )
+ endpoint.addQuery("access_token", accessToken);
+ if (input) {
+ endpoint.addQuery("filter", `label=@${input}`);
+ }
+ fetch(endpoint)
.then(fetchResponseHandler)
.then((json) => {
const options = [...json.data.map((d) => ({ ...d, name: d.label }))];
-
callback(options);
})
.catch(fetchErrorHandler);
},
- callDelay
+ DEBOUNCE_WAIT
);
export const addProgressFlag = (flagName) => async (dispatch, getState) => {
diff --git a/yarn.lock b/yarn.lock
index 67e9b2c50..12344284d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -10342,10 +10342,10 @@ open@^8.0.9:
is-docker "^2.1.1"
is-wsl "^2.2.0"
-openstack-uicore-foundation@4.2.21:
- version "4.2.21"
- resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-4.2.21.tgz#8bb505db7559890c902ea7b3d634d46f879287e1"
- integrity sha512-KOFIJnh4swsIAn5L/DV7I70cPtdgZxl47Kp7oX05uET7mqdFUVp5M08ysgMWXQRaoKqjpZnOzERLFxPNfKpqvg==
+openstack-uicore-foundation@4.2.22:
+ version "4.2.22"
+ resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-4.2.22.tgz#57feb259931bedf7b314d510c5a230f668074918"
+ integrity sha512-yfxxy2fXotyGEy2HuMpp05CJMmscfYDDYPUk+63rSiU7v5q6uopqL1NHkqBnxAlb6K4SrU88eP4B0aYaYmGHog==
optionator@^0.9.1:
version "0.9.4"
@@ -13442,7 +13442,7 @@ uri-js@^4.2.2, uri-js@^4.4.1:
dependencies:
punycode "^2.1.0"
-urijs@^1.19.1:
+urijs@1.19.11:
version "1.19.11"
resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.11.tgz#204b0d6b605ae80bea54bea39280cdb7c9f923cc"
integrity sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==