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
19 changes: 19 additions & 0 deletions src/actions/speaker-actions.js
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,11 @@ export const SEND_SPEAKERS_EMAILS = "SEND_SPEAKERS_EMAILS";
export const SET_SPEAKERS_CURRENT_FLOW_EVENT =
"SET_SPEAKERS_CURRENT_FLOW_EVENT";

export const REQUEST_SPEAKERS_ACTIVITIES_COUNT =
"REQUEST_SPEAKERS_ACTIVITIES_COUNT";
export const RECEIVE_SPEAKERS_ACTIVITIES_COUNT =
"RECEIVE_SPEAKERS_ACTIVITIES_COUNT";

const normalizeEntity = (entity) => {
const normalizedEntity = { ...entity };

Expand Down Expand Up @@ -882,6 +887,18 @@ const parseFilters = (filters) => {
return filter;
};

const getSpeakersActivitiesCount =
(summitId, filter, accessToken) => (dispatch) => {
const params = { access_token: accessToken };
if (filter.length > 0) params["filter[]"] = filter;
return getRequest(
createAction(REQUEST_SPEAKERS_ACTIVITIES_COUNT),
createAction(RECEIVE_SPEAKERS_ACTIVITIES_COUNT),
`${window.API_BASE_URL}/api/v1/summits/${summitId}/speakers/all/events/count`,
authErrorHandler
)(params)(dispatch);
};

export const getSpeakersBySummit =
(
term = null,
Expand Down Expand Up @@ -928,6 +945,8 @@ export const getSpeakersBySummit =
params.order = `${orderDirSign}${order}`;
}

dispatch(getSpeakersActivitiesCount(currentSummit.id, filter, accessToken));

return getRequest(
createAction(REQUEST_SPEAKERS_BY_SUMMIT),
createAction(RECEIVE_SPEAKERS_BY_SUMMIT),
Expand Down
20 changes: 20 additions & 0 deletions src/actions/submitter-actions.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,27 @@ export const UNSELECT_ALL_SUMMIT_SUBMITTERS = "UNSELECT_ALL_SUMMIT_SUBMITTERS";
export const SEND_SUBMITTERS_EMAILS = "SEND_SUBMITTERS_EMAILS";
export const SET_SUBMITTERS_CURRENT_FLOW_EVENT =
"SET_SUBMITTERS_CURRENT_FLOW_EVENT";
export const REQUEST_SUBMITTERS_ACTIVITIES_COUNT =
"REQUEST_SUBMITTERS_ACTIVITIES_COUNT";
export const RECEIVE_SUBMITTERS_ACTIVITIES_COUNT =
"RECEIVE_SUBMITTERS_ACTIVITIES_COUNT";

export const initSubmittersList = () => async (dispatch) => {
dispatch(createAction(INIT_SUBMITTERS_LIST_PARAMS)());
};

const getSubmittersActivitiesCount =
(summitId, filter, accessToken) => (dispatch) => {
const params = { access_token: accessToken };
if (filter.length > 0) params["filter[]"] = filter;
return getRequest(
createAction(REQUEST_SUBMITTERS_ACTIVITIES_COUNT),
createAction(RECEIVE_SUBMITTERS_ACTIVITIES_COUNT),
`${window.API_BASE_URL}/api/v1/summits/${summitId}/submitters/all/events/count`,
authErrorHandler
)(params)(dispatch);
};

export const getSubmittersBySummit =
(
term = null,
Expand Down Expand Up @@ -97,6 +113,10 @@ export const getSubmittersBySummit =
params.order = `${orderDirSign}${order}`;
}

dispatch(
getSubmittersActivitiesCount(currentSummit.id, filter, accessToken)
);

return getRequest(
createAction(REQUEST_SUBMITTERS_BY_SUMMIT),
createAction(RECEIVE_SUBMITTERS_BY_SUMMIT),
Expand Down
8 changes: 6 additions & 2 deletions src/i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
"member": "Member",
"members": "Members",
"event": "Activity",
"activities": "Activities",
"group": "Group",
"yes": "Yes",
"no": "No",
Expand Down Expand Up @@ -1101,7 +1102,8 @@
"send_emails_title": "You are about to send an EMAIL BLAST to selected speakers !",
"should_send_copy_2_submitter": "Also send to submitter?",
"allows_to_reassign": "Allow to reassign?",
"items_qty": "Selected {qty} Speakers",
"items_qty": "Selected {qty} Speakers | {activitiesQty} Activities",
"items_qty_no_activities": "Selected {qty} Speakers",
"placeholders": {
"search_speakers": "Search by Full Name, Email, Speaker Id, Member Id, Title Or Abstract",
"test_recipient": "Optional Test Recipient"
Expand All @@ -1115,7 +1117,9 @@
"send_emails_title": "You are about to send an EMAIL BLAST to selected submitters !",
"resend_done": "Emails sent successfully.",
"submitters": "Submitters",
"submitters_no_speakers": "Submitters (no speakers)"
"submitters_no_speakers": "Submitters (no speakers)",
"items_qty": "Selected {qty} Submitters | {activitiesQty} Activities",
"items_qty_no_activities": "Selected {qty} Submitters"
},
"speaker_attendance_list": {
"speaker_attendance_list": "Speaker Attendance List",
Expand Down
15 changes: 10 additions & 5 deletions src/pages/summit_speakers/summit-speakers-list-page.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ import { connect } from "react-redux";
import T from "i18n-react/dist/i18n-react";
import Swal from "sweetalert2";
import { Modal, Pagination } from "react-bootstrap";
import FreeTextSearch from "openstack-uicore-foundation/lib/components/free-text-search"
import SelectableTable from "openstack-uicore-foundation/lib/components/table-selectable"
import Dropdown from "openstack-uicore-foundation/lib/components/inputs/dropdown"
import FreeTextSearch from "openstack-uicore-foundation/lib/components/free-text-search";
import SelectableTable from "openstack-uicore-foundation/lib/components/table-selectable";
import Dropdown from "openstack-uicore-foundation/lib/components/inputs/dropdown";
import Input from "openstack-uicore-foundation/lib/components/inputs/text-input";
import SpeakerPromoCodeSpecForm from "../../components/forms/speakers-promo-code-spec-form";
import {
Expand Down Expand Up @@ -710,7 +710,8 @@ class SummitSpeakersListPage extends React.Component {
activityTypeFilter,
selectionStatusFilter,
mediaUploadTypeFilter,
currentFlowEvent
currentFlowEvent,
totalActivities
} = this.getSubjectProps();

const columns = [
Expand Down Expand Up @@ -901,7 +902,11 @@ class SummitSpeakersListPage extends React.Component {
{this.state.source === sources.speakers
? T.translate("summit_speakers_list.summit_speakers_list")
: T.translate("summit_submitters_list.summit_submitters_list")}{" "}
({totalItems})
({totalItems}{" "}
{this.state.source === sources.speakers
? T.translate("summit_speakers_list.speakers")
: T.translate("summit_submitters_list.submitters")}{" "}
| {totalActivities} {T.translate("general.activities")})
</h3>
<div className="row">
<div className="col-md-6">
Expand Down
7 changes: 6 additions & 1 deletion src/reducers/summit_speakers/summit-speakers-list-reducer.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ import {
SELECT_ALL_SUMMIT_SPEAKERS,
UNSELECT_ALL_SUMMIT_SPEAKERS,
SEND_SPEAKERS_EMAILS,
SET_SPEAKERS_CURRENT_FLOW_EVENT
SET_SPEAKERS_CURRENT_FLOW_EVENT,
RECEIVE_SPEAKERS_ACTIVITIES_COUNT
} from "../../actions/speaker-actions";

import {
Expand All @@ -38,6 +39,7 @@ const DEFAULT_STATE = {
lastPage: 1,
perPage: 10,
totalItems: 0,
totalActivities: 0,
selectedCount: 0,
selectedItems: [],
excludedItems: [],
Expand Down Expand Up @@ -205,6 +207,9 @@ const summitSpeakersListReducer = (state = DEFAULT_STATE, action = {}) => {
case SET_SPEAKERS_CURRENT_FLOW_EVENT: {
return { ...state, currentFlowEvent: payload };
}
case RECEIVE_SPEAKERS_ACTIVITIES_COUNT: {
return { ...state, totalActivities: payload.response.count };
}
default:
return state;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ import {
SELECT_ALL_SUMMIT_SUBMITTERS,
UNSELECT_ALL_SUMMIT_SUBMITTERS,
SEND_SUBMITTERS_EMAILS,
SET_SUBMITTERS_CURRENT_FLOW_EVENT
SET_SUBMITTERS_CURRENT_FLOW_EVENT,
RECEIVE_SUBMITTERS_ACTIVITIES_COUNT
} from "../../actions/submitter-actions";

import {
Expand All @@ -38,6 +39,7 @@ const DEFAULT_STATE = {
lastPage: 1,
perPage: 10,
totalItems: 0,
totalActivities: 0,
selectedCount: 0,
selectedItems: [],
excludedItems: [],
Expand Down Expand Up @@ -193,6 +195,9 @@ const summitSubmittersListReducer = (state = DEFAULT_STATE, action) => {
case SET_SUBMITTERS_CURRENT_FLOW_EVENT: {
return { ...state, currentFlowEvent: payload };
}
case RECEIVE_SUBMITTERS_ACTIVITIES_COUNT: {
return { ...state, totalActivities: payload.response.count };
}
default:
return state;
}
Expand Down
2 changes: 2 additions & 0 deletions src/reducers/summits/current-summit-reducer.js
Original file line number Diff line number Diff line change
Expand Up @@ -673,6 +673,7 @@ const currentSummitReducer = (state = DEFAULT_STATE, action) => {
};
}
case RECEIVE_REG_LITE_SETTINGS: {
if (!payload.response) return state;
const { data } = payload.response;
const reg_lite_marketing_settings = {};

Expand All @@ -695,6 +696,7 @@ const currentSummitReducer = (state = DEFAULT_STATE, action) => {
return { ...state, reg_lite_marketing_settings: newMarketingSettings };
}
case RECEIVE_PRINT_APP_SETTINGS: {
if (!payload.response) return state;
const { data } = payload.response;
const print_app_marketing_settings = {};

Expand Down
Loading