@openeventkit/event-site 1.0.13 → 1.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/gatsby-browser.js +2 -2
- package/gatsby-config.js +39 -27
- package/gatsby-node.js +23 -18
- package/package.json +2 -2
- package/src/cms/cms.js +2 -2
- package/src/cms/config/collections/configurationsCollection/index.js +1 -1
- package/src/cms/config/collections/configurationsCollection/navbar/index.js +0 -1
- package/src/cms/config/collections/configurationsCollection/siteSettings/index.js +0 -1
- package/src/cms/config/collections/contentPagesCollection/index.js +65 -0
- package/src/cms/config/collections/contentPagesCollection/typeDefs.js +8 -0
- package/src/cms/config/collections/defaultPagesCollection/index.js +2 -2
- package/src/cms/config/collections/defaultPagesCollection/lobbyPage/index.js +67 -0
- package/src/cms/config/collections/defaultPagesCollection/lobbyPage/typeDefs.js +21 -0
- package/src/cms/config/collections/defaultPagesCollection/marketingPage/index.js +1 -1
- package/src/cms/config/collections/defaultPagesCollection/marketingPage/typeDefs.js +1 -1
- package/src/cms/config/collections/typeDefs.js +3 -1
- package/src/cms/config/fields.js +0 -4
- package/src/cms/config/index.js +4 -2
- package/src/cms/config/patterns.js +3 -4
- package/src/cms/preview-templates/{CustomPagePreview.js → ContentPagePreview.js} +5 -5
- package/src/components/DisqusComponent.js +3 -5
- package/src/components/FullSchedule.js +5 -4
- package/src/components/LiteScheduleComponent.js +34 -36
- package/src/components/LiveEventWidgetComponent.js +29 -24
- package/src/components/Navbar/index.js +1 -0
- package/src/components/{page-header/index.jsx → PageHeader/index.js} +9 -5
- package/src/components/RegistrationLiteComponent.js +66 -56
- package/src/components/UpcomingEventsComponent.js +46 -48
- package/src/content/lobby-page/index.json +1 -0
- package/src/pages/a/[...].js +15 -14
- package/src/pages/index.js +1 -1
- package/src/reducers/presentations-reducer.js +1 -1
- package/src/reducers/setting-reducer.js +3 -4
- package/src/styles/style.scss +1 -1
- package/src/templates/{custom-page.js → content-page.js} +10 -8
- package/src/templates/event-page.js +247 -247
- package/src/templates/lobby-page.js +178 -0
- package/src/templates/maintenance-page.js +5 -5
- package/src/templates/poster-detail-page.js +2 -5
- package/src/templates/posters-page.js +1 -1
- package/src/utils/filePath.js +13 -7
- package/src/utils/phasesUtils.js +1 -1
- package/src/utils/useMarketingSettings.js +10 -8
- package/static/admin/config.yml.template +1 -2
- package/src/content/disqus-settings.json +0 -1
- package/src/content/home-settings.json +0 -1
- package/src/content/marketing-settings.json +0 -1
- package/src/pages/custom-pages/about-event.md +0 -16
- package/src/pages/custom-pages/contact.md +0 -8
- package/src/pages/custom-pages/footer-content.md +0 -8
- package/src/pages/custom-pages/help.md +0 -8
- package/src/pages/custom-pages/past-events.md +0 -8
- package/src/pages/custom-pages/who-we-are.md +0 -8
- package/src/templates/home-page.js +0 -170
- /package/src/components/{page-header → PageHeader}/index.module.scss +0 -0
- /package/src/{content → defaults}/colors.json +0 -0
- /package/src/{content → defaults}/posters-filters.json +0 -0
|
@@ -11,13 +11,13 @@ import 'lite-schedule-widget/dist/index.css';
|
|
|
11
11
|
|
|
12
12
|
import {addToSchedule, removeFromSchedule} from '../actions/user-actions';
|
|
13
13
|
|
|
14
|
+
import useMarketingSettings, { MARKETING_SETTINGS_KEYS } from "@utils/useMarketingSettings";
|
|
14
15
|
import { SentryFallbackFunction } from "./SentryErrorComponent";
|
|
15
16
|
|
|
16
17
|
const LiteScheduleComponent = ({
|
|
17
18
|
className,
|
|
18
19
|
userProfile,
|
|
19
20
|
colorSettings,
|
|
20
|
-
homeSettings,
|
|
21
21
|
page,
|
|
22
22
|
addToSchedule,
|
|
23
23
|
removeFromSchedule,
|
|
@@ -25,46 +25,44 @@ const LiteScheduleComponent = ({
|
|
|
25
25
|
summit,
|
|
26
26
|
...rest
|
|
27
27
|
}) => {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
28
|
+
const wrapperClass = page === 'marketing-site' ? 'schedule-container-marketing' : 'schedule-container';
|
|
29
|
+
const { getSettingByKey } = useMarketingSettings();
|
|
30
|
+
const defaultImage = getSettingByKey(MARKETING_SETTINGS_KEYS.schedultDefaultImage);
|
|
31
|
+
const componentProps = {
|
|
32
|
+
defaultImage: defaultImage,
|
|
33
|
+
eventsData: allScheduleEvents,
|
|
34
|
+
summitData: summit,
|
|
35
|
+
marketingData: colorSettings,
|
|
36
|
+
userProfile: userProfile,
|
|
37
|
+
triggerAction: (action, {event}) => {
|
|
38
|
+
switch (action) {
|
|
39
|
+
case 'ADDED_TO_SCHEDULE': {
|
|
40
|
+
return addToSchedule(event);
|
|
41
|
+
}
|
|
42
|
+
case 'REMOVED_FROM_SCHEDULE': {
|
|
43
|
+
return removeFromSchedule(event);
|
|
44
|
+
}
|
|
45
|
+
default: {
|
|
46
|
+
return;
|
|
48
47
|
}
|
|
49
|
-
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
};
|
|
50
51
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
</>
|
|
59
|
-
)
|
|
52
|
+
return (
|
|
53
|
+
<div className={className || wrapperClass}>
|
|
54
|
+
<Sentry.ErrorBoundary fallback={SentryFallbackFunction({componentName: 'Schedule Lite'})}>
|
|
55
|
+
<LiteSchedule {...componentProps} {...rest} />
|
|
56
|
+
</Sentry.ErrorBoundary>
|
|
57
|
+
</div>
|
|
58
|
+
)
|
|
60
59
|
};
|
|
61
60
|
|
|
62
61
|
const mapStateToProps = ({userState, summitState, allSchedulesState, settingState}) => ({
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
homeSettings: settingState.homeSettings
|
|
62
|
+
userProfile: userState.userProfile,
|
|
63
|
+
allScheduleEvents: allSchedulesState.allScheduleEvents,
|
|
64
|
+
summit: summitState.summit,
|
|
65
|
+
colorSettings: settingState.colorSettings
|
|
68
66
|
});
|
|
69
67
|
|
|
70
68
|
export default connect(mapStateToProps, {addToSchedule, removeFromSchedule})(LiteScheduleComponent)
|
|
@@ -9,35 +9,40 @@ import 'live-event-widget/dist/index.css';
|
|
|
9
9
|
// https://cdnjs.cloudflare.com/ajax/libs/awesome-bootstrap-checkbox/1.0.2/awesome-bootstrap-checkbox.min.css
|
|
10
10
|
// injected through HeadComponents
|
|
11
11
|
|
|
12
|
+
import useMarketingSettings, { MARKETING_SETTINGS_KEYS } from "@utils/useMarketingSettings";
|
|
12
13
|
import { SentryFallbackFunction } from "./SentryErrorComponent";
|
|
13
14
|
|
|
14
|
-
const LiveEventWidgetComponent = ({
|
|
15
|
+
const LiveEventWidgetComponent = ({
|
|
16
|
+
allEvents,
|
|
17
|
+
summit,
|
|
18
|
+
colorSettings,
|
|
19
|
+
className = "live-event-container",
|
|
20
|
+
...rest
|
|
21
|
+
}) => {
|
|
22
|
+
const { getSettingByKey } = useMarketingSettings();
|
|
23
|
+
const defaultImage = getSettingByKey(MARKETING_SETTINGS_KEYS.schedultDefaultImage);
|
|
24
|
+
const widgetProps = {
|
|
25
|
+
title: "",
|
|
26
|
+
defaultImage: defaultImage,
|
|
27
|
+
eventsData: allEvents,
|
|
28
|
+
summitData: summit,
|
|
29
|
+
marketingData: colorSettings,
|
|
30
|
+
...rest
|
|
31
|
+
};
|
|
15
32
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
return (
|
|
26
|
-
<>
|
|
27
|
-
<div className={className}>
|
|
28
|
-
<Sentry.ErrorBoundary fallback={SentryFallbackFunction({componentName: 'Live Event'})}>
|
|
29
|
-
<LiveEventWidget {...widgetProps} />
|
|
30
|
-
</Sentry.ErrorBoundary>
|
|
31
|
-
</div>
|
|
32
|
-
</>
|
|
33
|
-
)
|
|
33
|
+
return (
|
|
34
|
+
<div className={className}>
|
|
35
|
+
<Sentry.ErrorBoundary fallback={SentryFallbackFunction({componentName: 'Live Event'})}>
|
|
36
|
+
<LiveEventWidget {...widgetProps} />
|
|
37
|
+
</Sentry.ErrorBoundary>
|
|
38
|
+
</div>
|
|
39
|
+
)
|
|
34
40
|
};
|
|
35
41
|
|
|
36
42
|
const mapStateToProps = ({ summitState, allSchedulesState, settingState }) => ({
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
homeSettings: settingState.homeSettings,
|
|
43
|
+
summit: summitState.summit,
|
|
44
|
+
allEvents: allSchedulesState.allEvents,
|
|
45
|
+
colorSettings: settingState.colorSettings
|
|
41
46
|
});
|
|
42
47
|
|
|
43
|
-
export default connect(mapStateToProps, { })(LiveEventWidgetComponent)
|
|
48
|
+
export default connect(mapStateToProps, { })(LiveEventWidgetComponent);
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
import React from
|
|
1
|
+
import * as React from "react";
|
|
2
2
|
|
|
3
|
-
import styles from
|
|
3
|
+
import styles from "./index.module.scss";
|
|
4
4
|
|
|
5
|
-
const PageHeader = ({
|
|
5
|
+
const PageHeader = ({
|
|
6
|
+
title,
|
|
7
|
+
subtitle,
|
|
8
|
+
backgroundImageSrc
|
|
9
|
+
}) => (
|
|
6
10
|
<section className={styles.pageHeader}>
|
|
7
11
|
<div className={styles.titles}>
|
|
8
12
|
<h1>{title}</h1>
|
|
9
13
|
<span class={styles.subtitle}>{subtitle}</span>
|
|
10
14
|
</div>
|
|
11
|
-
{
|
|
12
|
-
<div className={styles.image} style={{backgroundImage: `url(${
|
|
15
|
+
{backgroundImageSrc &&
|
|
16
|
+
<div className={styles.image} style={{backgroundImage: `url(${backgroundImageSrc})`}}></div>
|
|
13
17
|
}
|
|
14
18
|
</section>
|
|
15
19
|
);
|
|
@@ -3,13 +3,14 @@ import * as Sentry from "@sentry/react";
|
|
|
3
3
|
import { navigate, withPrefix } from "gatsby"
|
|
4
4
|
import { connect } from "react-redux";
|
|
5
5
|
import URI from "urijs";
|
|
6
|
+
|
|
6
7
|
// these two libraries are client-side only
|
|
7
|
-
import RegistrationLiteWidget from
|
|
8
|
-
import
|
|
8
|
+
import RegistrationLiteWidget from "summit-registration-lite/dist";
|
|
9
|
+
import "summit-registration-lite/dist/index.css";
|
|
9
10
|
import FragmentParser from "openstack-uicore-foundation/lib/utils/fragment-parser";
|
|
10
|
-
import {doLogin, passwordlessStart, getAccessToken} from
|
|
11
|
-
import {doLogout} from
|
|
12
|
-
import {getEnvVariable, SUMMIT_API_BASE_URL, OAUTH2_CLIENT_ID, REGISTRATION_BASE_URL, SUPPORT_EMAIL} from
|
|
11
|
+
import {doLogin, passwordlessStart, getAccessToken} from "openstack-uicore-foundation/lib/security/methods"
|
|
12
|
+
import {doLogout} from "openstack-uicore-foundation/lib/security/actions"
|
|
13
|
+
import {getEnvVariable, SUMMIT_API_BASE_URL, OAUTH2_CLIENT_ID, REGISTRATION_BASE_URL, SUPPORT_EMAIL} from "../utils/envVariables"
|
|
13
14
|
import {getUserProfile, setPasswordlessLogin, setUserOrder, checkOrderData} from "../actions/user-actions";
|
|
14
15
|
import {getThirdPartyProviders} from "../actions/base-actions";
|
|
15
16
|
import {formatThirdPartyProviders} from "../utils/loginUtils";
|
|
@@ -17,41 +18,41 @@ import Swal from "sweetalert2";
|
|
|
17
18
|
import {checkRequireExtraQuestionsByAttendee} from "../actions/user-actions";
|
|
18
19
|
import {userHasAccessLevel, VirtualAccessLevel} from "../utils/authorizedGroups";
|
|
19
20
|
|
|
20
|
-
import
|
|
21
|
-
|
|
22
|
-
import styles from '../styles/marketing-hero.module.scss'
|
|
21
|
+
import { getExtraQuestions } from "../actions/summit-actions";
|
|
23
22
|
|
|
23
|
+
import useMarketingSettings, { MARKETING_SETTINGS_KEYS } from "@utils/useMarketingSettings";
|
|
24
24
|
import { SentryFallbackFunction } from "./SentryErrorComponent";
|
|
25
|
-
|
|
25
|
+
|
|
26
|
+
import styles from "../styles/marketing-hero.module.scss"
|
|
26
27
|
|
|
27
28
|
const RegistrationLiteComponent = ({
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}) => {
|
|
29
|
+
registrationProfile,
|
|
30
|
+
userProfile,
|
|
31
|
+
attendee,
|
|
32
|
+
getThirdPartyProviders,
|
|
33
|
+
thirdPartyProviders,
|
|
34
|
+
getUserProfile,
|
|
35
|
+
setPasswordlessLogin,
|
|
36
|
+
setUserOrder,
|
|
37
|
+
checkOrderData,
|
|
38
|
+
loadingProfile,
|
|
39
|
+
loadingIDP,
|
|
40
|
+
summit,
|
|
41
|
+
colorSettings,
|
|
42
|
+
marketingPageSettings,
|
|
43
|
+
allowsNativeAuth,
|
|
44
|
+
allowsOtpAuth,
|
|
45
|
+
checkRequireExtraQuestionsByAttendee,
|
|
46
|
+
getExtraQuestions,
|
|
47
|
+
children,
|
|
48
|
+
}) => {
|
|
48
49
|
const [isActive, setIsActive] = useState(false);
|
|
49
|
-
const [initialEmailValue, setInitialEmailValue] = useState(
|
|
50
|
+
const [initialEmailValue, setInitialEmailValue] = useState("");
|
|
50
51
|
|
|
51
52
|
useEffect(() => {
|
|
52
53
|
const fragmentParser = new FragmentParser();
|
|
53
|
-
setIsActive(fragmentParser.getParam(
|
|
54
|
-
const paramInitialEmailValue = fragmentParser.getParam(
|
|
54
|
+
setIsActive(fragmentParser.getParam("registration"));
|
|
55
|
+
const paramInitialEmailValue = fragmentParser.getParam("email");
|
|
55
56
|
if (paramInitialEmailValue)
|
|
56
57
|
setInitialEmailValue(paramInitialEmailValue);
|
|
57
58
|
}, []);
|
|
@@ -61,7 +62,7 @@ const RegistrationLiteComponent = ({
|
|
|
61
62
|
}, [thirdPartyProviders]);
|
|
62
63
|
|
|
63
64
|
const getBackURL = () => {
|
|
64
|
-
let backUrl =
|
|
65
|
+
let backUrl = "/#registration=1";
|
|
65
66
|
return URI.encode(backUrl);
|
|
66
67
|
};
|
|
67
68
|
|
|
@@ -74,10 +75,10 @@ const RegistrationLiteComponent = ({
|
|
|
74
75
|
};
|
|
75
76
|
|
|
76
77
|
const handleCompanyError = () => {
|
|
77
|
-
console.log(
|
|
78
|
+
console.log("company error...")
|
|
78
79
|
Swal.fire("ERROR", "Hold on. Your session expired!.", "error").then(() => {
|
|
79
80
|
// save current location and summit slug, for further redirect logic
|
|
80
|
-
window.localStorage.setItem(
|
|
81
|
+
window.localStorage.setItem("post_logout_redirect_path", new URI(window.location.href).pathname());
|
|
81
82
|
doLogout();
|
|
82
83
|
});
|
|
83
84
|
}
|
|
@@ -102,15 +103,18 @@ const RegistrationLiteComponent = ({
|
|
|
102
103
|
return setPasswordlessLogin(params);
|
|
103
104
|
};
|
|
104
105
|
|
|
105
|
-
const {
|
|
106
|
-
MARKETING_SETTINGS_KEYS,
|
|
107
|
-
getSettingByKey
|
|
108
|
-
} = useMarketingSettings();
|
|
106
|
+
const { getSettingByKey } = useMarketingSettings();
|
|
109
107
|
|
|
110
108
|
const inPersonDisclaimer = getSettingByKey(MARKETING_SETTINGS_KEYS.registrationInPersonDisclaimer);
|
|
111
109
|
const allowPromoCodes = !!Number(getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteAllowPromoCodes));
|
|
112
110
|
const companyInputPlaceholder = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteCompanyInputPlaceholder);
|
|
113
111
|
const companyDDLPlaceholder = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteCompanyDDLPlaceholder);
|
|
112
|
+
const initialOrderComplete1stParagraph = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteInitialOrderComplete1stParagraph)
|
|
113
|
+
const initialOrderComplete2ndParagraph = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteInitialOrderComplete2ndParagraph)
|
|
114
|
+
const initialOrderCompleteButton = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteInitialOrderCompleteButton)
|
|
115
|
+
const orderComplete1stParagraph = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteOrderComplete1stParagraph)
|
|
116
|
+
const orderComplete2ndParagraph = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteOrderComplete2ndParagraph)
|
|
117
|
+
const orderCompleteButton = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteOrderCompleteButton)
|
|
114
118
|
|
|
115
119
|
const widgetProps = {
|
|
116
120
|
apiBaseUrl: getEnvVariable(SUMMIT_API_BASE_URL),
|
|
@@ -126,7 +130,7 @@ const RegistrationLiteComponent = ({
|
|
|
126
130
|
ownedTickets: attendee?.ticket_types || [],
|
|
127
131
|
authUser: (provider) => onClickLogin(provider),
|
|
128
132
|
getPasswordlessCode: getPasswordlessCode,
|
|
129
|
-
loginWithCode: (code, email) => loginPasswordless(code, email).then( () => navigate(
|
|
133
|
+
loginWithCode: (code, email) => loginPasswordless(code, email).then( () => navigate("/#registration=1")),
|
|
130
134
|
getAccessToken: getAccessToken,
|
|
131
135
|
closeWidget: () => {
|
|
132
136
|
// reload user profile
|
|
@@ -134,11 +138,11 @@ const RegistrationLiteComponent = ({
|
|
|
134
138
|
setIsActive(false);
|
|
135
139
|
},
|
|
136
140
|
goToExtraQuestions: () => {
|
|
137
|
-
navigate(
|
|
141
|
+
navigate("/a/extra-questions");
|
|
138
142
|
},
|
|
139
|
-
goToEvent: () => navigate(
|
|
143
|
+
goToEvent: () => navigate("/a/"),
|
|
140
144
|
goToRegistration: () => navigate(`${getEnvVariable(REGISTRATION_BASE_URL)}/a/${summit.slug}`),
|
|
141
|
-
goToMyOrders: () => navigate(
|
|
145
|
+
goToMyOrders: () => navigate("/a/my-tickets"),
|
|
142
146
|
completedExtraQuestions: async (order) => {
|
|
143
147
|
const currentUserTicket = order?.tickets.find(t => t?.owner?.email == userProfile?.email);
|
|
144
148
|
const currentAttendee = attendee ? attendee : (currentUserTicket ? currentUserTicket?.owner : null);
|
|
@@ -147,7 +151,7 @@ const RegistrationLiteComponent = ({
|
|
|
147
151
|
return checkRequireExtraQuestionsByAttendee(currentAttendee);
|
|
148
152
|
},
|
|
149
153
|
onPurchaseComplete: (order) => {
|
|
150
|
-
// check if it
|
|
154
|
+
// check if it"s necessary to update profile
|
|
151
155
|
setUserOrder(order).then(()=> checkOrderData(order));
|
|
152
156
|
},
|
|
153
157
|
inPersonDisclaimer: inPersonDisclaimer,
|
|
@@ -155,16 +159,16 @@ const RegistrationLiteComponent = ({
|
|
|
155
159
|
allowsNativeAuth: allowsNativeAuth,
|
|
156
160
|
allowsOtpAuth: allowsOtpAuth,
|
|
157
161
|
stripeOptions: {
|
|
158
|
-
fonts: [{cssSrc: withPrefix(
|
|
159
|
-
style: {base: {fontFamily: `
|
|
162
|
+
fonts: [{ cssSrc: withPrefix("/fonts/fonts.css") }],
|
|
163
|
+
style: { base: { fontFamily: `"Nunito Sans", sans-serif`, fontWeight: 300 } }
|
|
160
164
|
},
|
|
161
165
|
loginInitialEmailInputValue: initialEmailValue,
|
|
162
166
|
authErrorCallback: (error) => {
|
|
163
167
|
// we have an auth Error, perform logout
|
|
164
168
|
const fragment = window?.location?.hash;
|
|
165
|
-
return navigate(
|
|
169
|
+
return navigate("/auth/logout", {
|
|
166
170
|
state: {
|
|
167
|
-
backUrl:
|
|
171
|
+
backUrl: "/" + fragment
|
|
168
172
|
}
|
|
169
173
|
});
|
|
170
174
|
},
|
|
@@ -172,23 +176,29 @@ const RegistrationLiteComponent = ({
|
|
|
172
176
|
companyInputPlaceholder: companyInputPlaceholder,
|
|
173
177
|
companyDDLPlaceholder: companyDDLPlaceholder,
|
|
174
178
|
supportEmail: getEnvVariable(SUPPORT_EMAIL),
|
|
179
|
+
initialOrderComplete1stParagraph: initialOrderComplete1stParagraph,
|
|
180
|
+
initialOrderComplete2ndParagraph: initialOrderComplete2ndParagraph,
|
|
181
|
+
initialOrderCompleteButton: initialOrderCompleteButton,
|
|
182
|
+
orderComplete1stParagraph: orderComplete1stParagraph,
|
|
183
|
+
orderComplete2ndParagraph: orderComplete2ndParagraph,
|
|
184
|
+
orderCompleteButton: orderCompleteButton,
|
|
175
185
|
};
|
|
176
186
|
|
|
177
187
|
const { registerButton } = marketingPageSettings.hero.buttons;
|
|
178
188
|
|
|
179
189
|
return (
|
|
180
190
|
<>
|
|
181
|
-
{children ?
|
|
191
|
+
{children ?
|
|
182
192
|
React.cloneElement(children, { onClick: handleOpenPopup })
|
|
183
193
|
:
|
|
184
194
|
registerButton.display &&
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
195
|
+
<button className={`${styles.button} button is-large`} disabled={isActive}
|
|
196
|
+
onClick={handleOpenPopup}>
|
|
197
|
+
<i className={`fa fa-2x fa-edit icon is-large`}/>
|
|
198
|
+
<b>{registerButton.text}</b>
|
|
199
|
+
</button>
|
|
190
200
|
}
|
|
191
|
-
<Sentry.ErrorBoundary fallback={SentryFallbackFunction({componentName:
|
|
201
|
+
<Sentry.ErrorBoundary fallback={SentryFallbackFunction({componentName: "Registration Lite"})}>
|
|
192
202
|
{isActive && <RegistrationLiteWidget {...widgetProps} />}
|
|
193
203
|
</Sentry.ErrorBoundary>
|
|
194
204
|
</>
|
|
@@ -219,4 +229,4 @@ export default connect(mapStateToProps, {
|
|
|
219
229
|
checkOrderData,
|
|
220
230
|
checkRequireExtraQuestionsByAttendee,
|
|
221
231
|
getExtraQuestions,
|
|
222
|
-
})(RegistrationLiteComponent)
|
|
232
|
+
})(RegistrationLiteComponent);
|
|
@@ -11,63 +11,61 @@ import "upcoming-events-widget/dist/index.css";
|
|
|
11
11
|
|
|
12
12
|
import { addToSchedule, removeFromSchedule } from "../actions/user-actions";
|
|
13
13
|
|
|
14
|
+
import useMarketingSettings, { MARKETING_SETTINGS_KEYS } from "@utils/useMarketingSettings";
|
|
14
15
|
import { SentryFallbackFunction } from "./SentryErrorComponent";
|
|
15
16
|
|
|
16
17
|
const UpcomingEventsComponent = ({
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
...rest
|
|
18
|
+
className,
|
|
19
|
+
userProfile,
|
|
20
|
+
page,
|
|
21
|
+
addToSchedule,
|
|
22
|
+
removeFromSchedule,
|
|
23
|
+
colorSettings,
|
|
24
|
+
allEvents,
|
|
25
|
+
summit,
|
|
26
|
+
...rest
|
|
27
27
|
}) => {
|
|
28
|
-
|
|
28
|
+
const wrapperClass = page === "marketing-site" ? "schedule-container-marketing" : "schedule-container";
|
|
29
|
+
const { getSettingByKey } = useMarketingSettings();
|
|
30
|
+
const defaultImage = getSettingByKey(MARKETING_SETTINGS_KEYS.schedultDefaultImage);
|
|
31
|
+
const componentProps = {
|
|
32
|
+
defaultImage: defaultImage,
|
|
33
|
+
eventsData: allEvents,
|
|
34
|
+
summitData: summit,
|
|
35
|
+
marketingData: colorSettings,
|
|
36
|
+
userProfile: userProfile,
|
|
37
|
+
showAllEvents: true,
|
|
38
|
+
triggerAction: (action, { event }) => {
|
|
39
|
+
switch (action) {
|
|
40
|
+
case "ADDED_TO_SCHEDULE": {
|
|
41
|
+
return addToSchedule(event);
|
|
42
|
+
}
|
|
43
|
+
case "REMOVED_FROM_SCHEDULE": {
|
|
44
|
+
return removeFromSchedule(event);
|
|
45
|
+
}
|
|
46
|
+
default:
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
};
|
|
29
51
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
triggerAction: (action, { event }) => {
|
|
38
|
-
switch (action) {
|
|
39
|
-
case "ADDED_TO_SCHEDULE": {
|
|
40
|
-
return addToSchedule(event);
|
|
41
|
-
}
|
|
42
|
-
case "REMOVED_FROM_SCHEDULE": {
|
|
43
|
-
return removeFromSchedule(event);
|
|
44
|
-
}
|
|
45
|
-
default:
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
return (
|
|
52
|
-
<>
|
|
53
|
-
<div id="upcoming-events" className={className || wrapperClass} style={{ height: 500 }}>
|
|
54
|
-
<Sentry.ErrorBoundary fallback={SentryFallbackFunction({componentName: 'Upcoming Events'})}>
|
|
55
|
-
<UpcomingEvents {...componentProps} {...rest} />
|
|
56
|
-
</Sentry.ErrorBoundary>
|
|
57
|
-
</div>
|
|
58
|
-
</>
|
|
59
|
-
);
|
|
52
|
+
return (
|
|
53
|
+
<div id="upcoming-events" className={className || wrapperClass} style={{ height: 500 }}>
|
|
54
|
+
<Sentry.ErrorBoundary fallback={SentryFallbackFunction({componentName: 'Upcoming Events'})}>
|
|
55
|
+
<UpcomingEvents {...componentProps} {...rest} />
|
|
56
|
+
</Sentry.ErrorBoundary>
|
|
57
|
+
</div>
|
|
58
|
+
);
|
|
60
59
|
};
|
|
61
60
|
|
|
62
61
|
const mapStateToProps = ({ userState, summitState, allSchedulesState, settingState }) => ({
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
allEvents: allSchedulesState.allEvents,
|
|
62
|
+
userProfile: userState.userProfile,
|
|
63
|
+
colorSettings: settingState.colorSettings,
|
|
64
|
+
summit: summitState.summit,
|
|
65
|
+
allEvents: allSchedulesState.allEvents,
|
|
68
66
|
});
|
|
69
67
|
|
|
70
68
|
export default connect(mapStateToProps, {
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
addToSchedule,
|
|
70
|
+
removeFromSchedule
|
|
73
71
|
})(UpcomingEventsComponent);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
package/src/pages/a/[...].js
CHANGED
|
@@ -1,26 +1,25 @@
|
|
|
1
|
-
import React from "react"
|
|
2
|
-
import { Router, Location } from "@reach/router"
|
|
3
|
-
import { connect } from
|
|
4
|
-
import
|
|
5
|
-
import EventPage from "../../templates/event-page"
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Router, Location } from "@reach/router";
|
|
3
|
+
import { connect } from "react-redux";
|
|
4
|
+
import LobbyPage from "../../templates/lobby-page";
|
|
5
|
+
import EventPage from "../../templates/event-page";
|
|
6
6
|
import PostersPage from "../../templates/posters-page";
|
|
7
7
|
import SchedulePage from "../../templates/schedule-page";
|
|
8
8
|
import SponsorPage from "../../templates/sponsor-page"
|
|
9
9
|
import ExpoHallPage from "../../templates/expo-hall-page"
|
|
10
10
|
import FullProfilePage from "../../templates/full-profile-page"
|
|
11
|
-
import WithAuthzRoute from
|
|
12
|
-
import WithAuthRoute from
|
|
11
|
+
import WithAuthzRoute from "../../routes/WithAuthzRoute"
|
|
12
|
+
import WithAuthRoute from "../../routes/WithAuthRoute";
|
|
13
13
|
import ExtraQuestionsPage from "../../templates/extra-questions-page"
|
|
14
14
|
import ShowOpenRoute from "../../routes/ShowOpenRoute";
|
|
15
15
|
import WithBadgeRoute from "../../routes/WithBadgeRoute";
|
|
16
16
|
import PosterDetailPage from "../../templates/poster-detail-page";
|
|
17
|
-
import MyTicketsPage from
|
|
17
|
+
import MyTicketsPage from "../../templates/my-tickets-page";
|
|
18
18
|
import WithTicketRoute from "../../routes/WithTicketRoute";
|
|
19
19
|
import withRealTimeUpdates from "../../utils/real_time_updates/withRealTimeUpdates";
|
|
20
20
|
import withFeedsWorker from "../../utils/withFeedsWorker";
|
|
21
21
|
import Link from "../../components/Link";
|
|
22
22
|
|
|
23
|
-
|
|
24
23
|
const App = ({ isLoggedUser, user, summit_phase, allowClick = true }) => {
|
|
25
24
|
|
|
26
25
|
return (
|
|
@@ -32,7 +31,7 @@ const App = ({ isLoggedUser, user, summit_phase, allowClick = true }) => {
|
|
|
32
31
|
location={location}
|
|
33
32
|
schedKey="schedule-main"
|
|
34
33
|
scheduleProps={{ subtitle:
|
|
35
|
-
<Link to={
|
|
34
|
+
<Link to={"/a/my-schedule"}>Show My Schedule</Link>
|
|
36
35
|
}}
|
|
37
36
|
allowClick={allowClick}
|
|
38
37
|
/>
|
|
@@ -52,8 +51,10 @@ const App = ({ isLoggedUser, user, summit_phase, allowClick = true }) => {
|
|
|
52
51
|
summit_phase={summit_phase}
|
|
53
52
|
isLoggedIn={isLoggedUser}
|
|
54
53
|
user={user}
|
|
55
|
-
scheduleProps={{
|
|
56
|
-
|
|
54
|
+
scheduleProps={{
|
|
55
|
+
title: "My Schedule",
|
|
56
|
+
showSync: true,
|
|
57
|
+
subtitle: <Link to={"/a/schedule"}>Show Schedule</Link>
|
|
57
58
|
}}
|
|
58
59
|
schedKey="my-schedule-main"
|
|
59
60
|
allowClick={allowClick}
|
|
@@ -62,7 +63,7 @@ const App = ({ isLoggedUser, user, summit_phase, allowClick = true }) => {
|
|
|
62
63
|
<WithBadgeRoute path="/event/:eventId" summit_phase={summit_phase} isLoggedIn={isLoggedUser} user={user} location={location}>
|
|
63
64
|
<EventPage path="/" summit_phase={summit_phase} isLoggedIn={isLoggedUser} user={user} location={location} />
|
|
64
65
|
</WithBadgeRoute>
|
|
65
|
-
<
|
|
66
|
+
<LobbyPage path="/" isLoggedIn={isLoggedUser} user={user} location={location} />
|
|
66
67
|
<SponsorPage path="/sponsor/:sponsorId" summit_phase={summit_phase} isLoggedIn={isLoggedUser} user={user} location={location} />
|
|
67
68
|
<ExpoHallPage path="/sponsors/" summit_phase={summit_phase} isLoggedIn={isLoggedUser} user={user} location={location} />
|
|
68
69
|
</ShowOpenRoute>
|
|
@@ -85,4 +86,4 @@ const mapStateToProps = ({ loggedUserState, userState, clockState, settingState,
|
|
|
85
86
|
});
|
|
86
87
|
|
|
87
88
|
export default connect(mapStateToProps, {
|
|
88
|
-
})(withFeedsWorker(withRealTimeUpdates(App)))
|
|
89
|
+
})(withFeedsWorker(withRealTimeUpdates(App)));
|
package/src/pages/index.js
CHANGED
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
import { filterEventsByAccessLevels } from "../utils/authorizedGroups";
|
|
28
28
|
import { randomSort } from "../utils/filterUtils";
|
|
29
29
|
|
|
30
|
-
import DEFAULT_FILTERS_STATE from "
|
|
30
|
+
import DEFAULT_FILTERS_STATE from "../defaults/posters-filters.json";
|
|
31
31
|
import allVoteablePresentations from "data/voteable-presentations.json";
|
|
32
32
|
|
|
33
33
|
const DEFAULT_VOTEABLE_PRESENTATIONS_STATE = {
|
|
@@ -2,11 +2,10 @@ import { START_LOADING, STOP_LOADING } from "openstack-uicore-foundation/lib/uti
|
|
|
2
2
|
import { LOGOUT_USER } from "openstack-uicore-foundation/lib/security/actions";
|
|
3
3
|
import { RESET_STATE, SYNC_DATA, UPDATE_LAST_CHECK_FOR_NOVELTIES } from "../actions/base-actions-definitions";
|
|
4
4
|
|
|
5
|
+
import colors from "data/colors.json";
|
|
5
6
|
// TODO: dont store build timestamps in site-settings, use another file
|
|
6
7
|
import settings from "content/site-settings/index.json";
|
|
7
|
-
import
|
|
8
|
-
// TODO: rename to lobby page settings?
|
|
9
|
-
import homeSettings from "content/home-settings.json";
|
|
8
|
+
import lobbyPageSettings from "content/lobby-page/index.json";
|
|
10
9
|
// TODO: should this live in reducer or should be accessed though graphql?
|
|
11
10
|
import marketingPageSettings from "content/marketing-page/index.json";
|
|
12
11
|
import postersPages from "content/posters-pages.json";
|
|
@@ -21,7 +20,7 @@ const DEFAULT_STATE = {
|
|
|
21
20
|
widgets: settings.widgets,
|
|
22
21
|
colorSettings: colors,
|
|
23
22
|
marketingPageSettings: marketingPageSettings,
|
|
24
|
-
|
|
23
|
+
lobbyPageSettings: lobbyPageSettings,
|
|
25
24
|
posterPagesSettings: postersPages,
|
|
26
25
|
// this keeps tracks of last data synch
|
|
27
26
|
lastDataSync: settings.lastBuild,
|